Wydział Mechatroniki i Budowy Maszyn
Zakład Technik Komputerowych i Uzbrojenia
Rok I, sem. I, Podstawy Informatyki
Opracował: dr hab. inż. Zbigniew Koruba, prof. PŚk
Ćwiczenie laboratoryjne nr 3
INSTRUKCJE WIELOKROTNEGO POWTARZANIA W TURBO PASCALU
Przykład 1.
Dany jest ciąg liczb całkowitych zakończony liczbą zero. Napisać program, który wyznacza
średnią arytmetyczną tego ciągu.
program Srednia;
{Program wykorzystuje instrukcjÄ™ wielokrotnego powtarzania WHILE}
uses
crt;
var
x, s : longint; {typ całkowity długi}
k : word; {typ liczb naturalnych w zakresie od 0 do 65635}
sr : extended; {typ rzeczywisty rozszerzony}
BEGIN
ClrScr;
GoToXY(10,10);
Write('Podawaj kolejne elementy ciągu, zakończonego liczbą zero');
GoToXY(20,12); Write('x= '); Readln(x);
k:=0; s:=0; sr:=0;
While x <> 0 do {Podczas gdy x jest różne od zera wykonuj}
begin
s:=s+x;
k:=k+1;
GoToXY(20,12);
DelLine; {Usunięcie linii w pozycji kursora}
GoToXY(20,12); Write('x= '); Readln(x);
end;
if k <> 0 then sr:=s/k;
GoToXY(20,14); Write('średnia ciągu wynosi: ',sr:6:3);
Readkey
END.
1
Przykład 2.
Dany jest ciąg liczb rzeczywistych zakończony liczbą 999. Napisać program, który wyznacza
iloczyn liczb dodatnich tego ciągu oraz podaje ile było liczb dodatnich.
program Iloczyn;
{Program wykorzystuje instrukcjÄ™ wielokrotnego powtarzania REPEAT}
uses
crt;
var
x, il : real;
k : byte; {typ liczb naturalnych w zakresie od 0 do 255}
BEGIN
ClrScr;
GoToXY(10,10);
Write('Podawaj kolejne elementy ciagu, zakonczonego liczba 999');
il:=1; k:=0;
Repeat {Powtarzaj...}
GoToXY(20,12); Write('x= '); Readln(x);
GoToXY(20,12); DelLine;
If (x > 0) and (x <> 999) then
begin
il:=il*x;
k:=k+1;
end;
DelLine;
Until x = 999; {...aż liczba x będzie równa wartości 999}
GoToXY(10,14); Write('Iloczyn wynosi: ',il:6:3, ' liczb dodatnich bylo: ',k);
Readkey
END.
Przykład 3.
Napisz program wyznaczajÄ…cy silniÄ™ zadanej liczby naturalnej N.
program N_silnia;
{Program wykorzystuje instrukcjÄ™ wielokrotnego powtarzania FOR}
uses
crt;
var
silnia : extended;
i,n : byte;
BEGIN
ClrScr;
GoToXY(20,10);
Write('Podaj liczbÄ™ naturalnÄ… N: ');
ReadLn(n);
2
silnia:=1;
If (n = 0) or (n = 1) then silnia:=1
Else
begin
For i:=1 to n do {Dla początkowej wartości licznika pętli i=1 i końcowej i=n, wykonuj}
silnia:=silnia*i;
end; GoToXY(20,14); Write('Silnia liczby ',n,' wynosi: ',silnia:6:0);
Readkey
END.
Przykład 4.
Dany jest ciąg znaków zakończony . (kropką). Napisać program wyznaczania liczby małych
liter alfabetu (tj. znaków z przedziału a - z ) w tym ciągu.
program Znaki;
{Program wykorzystuje typ znakowy i instrukcjÄ™ wielokrotnego powtarzania REPEAT}
uses
crt;
var
zn : char; {Typ znakowy}
lm : byte;
BEGIN
ClrScr;
GoToXY(15,10);
Write('Podawaj znaki, kropka kończy wprowadzanie: ');
lm:=0;
Repeat
GoToXY(15,12); Write('Podaj znak: ');
ReadLn(zn);
GoToXY(15,12); DelLine;
if zn in ['a'..'z'] {jeśli znak zawiera się w zbiorze...} then lm:=lm+1
Until zn = '.';
GoToXY(15,14); Write('Liczba wystąpień małych liter alfabetu wyniosła: ',lm:4);
Readkey
END.
Przykład 5.
Napisz program z zastosowaniem procedur i funkcji do wyznaczania minimum i maksimum
zadanego ciągu N liczb całkowitych.
program EkstremalneLiczby;
{Program z zastosowaniem PROCEDUR i FUNKCJI}
uses
crt;
function Minimum(l1, l2 : real) : real;
3
begin
If l1 < l2 then Minimum:=l1
else Minimum:=l2
end;
function Maximum(l1, l2 : real) : real;
begin
If l1 > l2 then Maximum:=l1
else Maximum:=l2
end;
procedure MinMax(n : byte; var min, max : real);
var
x : real;
i : byte;
begin
GoToXY(30,10);
Write('Podaj liczbÄ™: '); Readln(x);
min:=x; max:=x;
for i:=1 to n-1 do
begin
GoToXY(30,10); DelLine;
Write('Podaj liczbÄ™: '); Readln(x);
min:=Minimum(x,min); {Wywołanie funkcji}
max:=Maximum(x,max); {Wywołanie funkcji}
end;
end;
var
min, max : real;
n : byte;
BEGIN
ClrScr;
GoToXY(30,8); Write('Podaj N: '); Readln(n);
MinMax(n, min, max); {wywołanie procedury}
GoToXY(15,14); Write('Minimum wynosi: ',min:6:2,';',' Maksimum wynosi: ',max:6:2);;
Readkey
END.
4
Zadania do samodzielnego rozwiÄ…zania
1. Napisać program, który wyznacza średnią arytmetyczną elementów nieparzystych ciągu
liczb całkowitych zakończonych liczbą 111. Wykorzystaj pętlę REPEAT oraz skorzystaj
z operatora mod.
2. Dany jest ciąg znaków zakończony ! (wykrzyknikiem). Napisać program wyznaczania
liczby cyfr (tj. znaków z przedziału od 0 do 9 ) w tym ciągu. Zastosuj pętlę WHILE.
3. Wyznaczyć z dokÅ‚adnoÅ›ciÄ… µ wartość liczby e (podstawa logarytmów naturalnych). Nale-
ży wykorzystać wzór:
"
1
e = gdzie ai =
"ai
i!
i=0
Kolejne wyrazy szeregu należy sumować aż do speÅ‚nienia warunku: ai <µ .
4. Napisać program obliczający obwód (zastosuj funkcję) i pole prostokąta (zastosuj pro-
cedurÄ™).
5
Wyszukiwarka
Podobne podstrony:
MATLAB cw Skryptycad2 cw 5 6cw formularzCw 2 zespol2 HIPSCw 9 Wzmacniacz mocyCw 1metrologia cw 1 protokolSprawozdanie Ćw 2Biofizyka kontrolka do cw nrsystemy operacyjne cw linux apache mysqlcw 7ćw oswajające z piłką lekcja dla dzieciCw 6 Parametryczny stabilizator napieciaELE III cw 5 teoria wybrane Bcw 2 zyrowięcej podobnych podstron