/\/\irosław Paja, gg:799450
1
Temat VI.
Na czym polega programowanie strukturalne?
Zadanie 1. Napisz program, który wyświetla twoje imię na początku i końcu strony.
gotoXY(x,y) – umożliwia ustawienie kursora na ekranie w miejscu o współrzędnych X,Y.
Zadanie 2. Napisz program, który rysuje 3 uśmiechy ‘:)’.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _
programowanie strukturalne – program ma określoną strukturę, w której można wyodrębnić deklaracje (mo-
dułów, zmiennych, stałych), definicje (procedury i funkcje) oraz bloki instrukcji.
1.
Zalety stosowania procedur i funkcji:
−
dzielenie zadania na mniejsze moduły
−
wprowadzenie porządku do programu,
−
unikanie powtórzeń,
−
łatwiejsze wyszukiwanie błędów i dokonywanie poprawek,
−
programowanie zespołowe.
przykłady:
−
procedur: Readln, Writeln, ClrScr,
−
funkcji: pi, sqr, sort
2.
Definiowanie procedur i funkcji
procedure nazwa-procedury(lista-parametrów);
deklaracje-i-definicje-obiektów-lokalnych
begin
instrukcje-realizujące-treść-procedury
end;
function nazwa-funkcji(lista-parametrów) :typ-wyniku;
deklaracje-i-definicje-obiektów lokalnych
begin
instrukcje-realizujące-treść funkcji
end;
−
funkcja stanowi rozszerzenie procedury o możliwość przekazywania wartości.
−
w przypadku funkcji należy umieścić w definicji instrukcję przypisania: nazwa-funkcji := wartość-wyniku
3.
Procedury bez parametru
Zadanie 3. Napisz program, który rysuje 3
uśmiechy ‘:)’, korzystając z procedury malujUs-
miechy.
program zadanie_6_3;
uses Crt;
procedure malujUsmiechy;
var i: integer;
begin
for i := 1 to 3 do Write(':)');
end;
begin
ClrScr;
GotoXY(5,1);
malujUsmiechy;
GotoXY(70,50);
malujUsmiechy;
repeat until keypressed;
end.
Zadanie 4. Napisz procedurę, która dla liczby dodat-
niej rysuje 3 uśmiechy, a dla ujemnej 3 smutki.
program zadanie_6_4;
uses Crt;
procedure Usmiechy;
var i,k:integer;
begin
Write('Podaj liczbe: ');
Readln(k);
if k>0 then for i:=1 to 3 do Write(':-) ')
else for i:=1 to 3 do Write(':-( ');
end;
begin
Usmiechy;
repeat until keypressed;
end.
/\/\irosław Paja, gg:799450
2
4.
Procedury z parametrem
Zadanie 5. Zmodyfikuj zadanie_3, aby program
rysował podaną przez nas liczbę uśmiechów.
program zadanie_6_5;
uses Crt;
var n: integer;
procedure malujUsmiechy(n:integer);
var i: integer;
begin
for i := 1 to n do Write(':)');
end;
begin
ClrScr;
Write('Podaj liczbe usmiechow: ');
readln(n);
GotoXY(2,5);
malujUsmiechy(n);
GotoXY(50,50);
malujUsmiechy(n);
repeat until keypressed;
end.
Zadanie 6. Napisz programu który dla zadanego n
rysuje trójkąt z gwiazdek – ‘*’.
program zadanie_6_6;
uses crt;
var i, j,n : byte;
procedure gwiazdki(n : byte);
var i,j : byte;
begin
for i := 1 to n do write('*');
writeln;
end;
begin
ClrScr;
write('podaj bok trojkata: ');
readln(n);
for i := 1 to n do gwiazdki(i);
readln;
end.
5.
Funkcje
Zadanie 7. Napisz programu, który znajduje silnie dla zadanej liczby naturalnej.
N! = 1*2* ... (n-1)*n
(
)
≥
−
⋅
=
=
1
dla
!
1
0
dla
1
!
N
N
N
N
N
3! = 3*2!
3! = 3*(2*1!)
3! = 3*(2*(1*0!))
3! = 3*(2*(1*1)) = 6
program zadanie_6_7;
uses Crt;
var s, liczba: LongInt;
function silnia(n : byte) : longint;
{funkcja oblicza silnię liczby naturalnej n}
var i
: byte;
wartosc
: longint;
begin
wartosc := 1;
for i := 1 to n do wartosc := wartosc * i;
silnia := wartosc;
end;
begin
ClrScr;
Write('Podaj liczbe: ');
readln(liczba);
s:=silnia(liczba);
Writeln(liczba,'! = ',s);
Writeln(liczba,'! = ',silnia(liczba));
repeat until keypressed;
end.
/\/\irosław Paja, gg:799450
3
Zadanie 8. Napisz programu, który znajduje największy wspólny dzielnik (NWD) liczb a i b.
program zadanie_6_8;
uses Crt;
var a,b: Integer;
function nwd(a,b: integer) : longint;
var pom : integer;
begin
while a<>b do
begin
if a<b then
begin
pom:=a;
a:=b;
b:=pom;
end;
a:=a-b;
end;
nwd:=a;
end;
begin
ClrScr;
Write('Podaj A: '); readln(a);
Write('Podaj B: '); readln(b);
writeln('NWD(',a,',',b,') = ',NWD(a,b));
repeat until keypressed;
end.
Program 9. Napisz program, zliczający wprowa-
dzone liczby ujemne i nieujemne wśród n liczb
wprowadzonych z klawiatury. Zdefiniuj procedu-
rę zliczaj (z jednym parametrem), która będzie
zliczała liczby.
program zadanie_6_9;
uses Crt;
var i, n, x, ujemne, nieujemne :integer;
procedure Zliczaj(x:integer);
begin
if x<0 then ujemne:=ujemne+1
else nieujemne:=nieujemne+1;
end;
begin
ClrScr;
ujemne:=0; nieujemne:=0;
Write('Podaj liczbe elementow: ');
ReadLn(n);
for i:=1 to n do
begin
Write('Podaj liczbe: ');
ReadLn(x);
Zliczaj(x);
end;
Writeln;
WriteLn(‘Ujemnych: ', ujemne);
WriteLn('Nieujemnych: ', nieujemne);
repeat until keypressed;
end.
Program 10. Napisz program, który wyświetli na
ekranie trójkąt prostokątny składający się ze zna-
ków ”$”, przy czym jego wysokość i podstawa
mają ”długość” 10 znaków. Zdefiniuj odpowiednie
procedury.
program zadanie_6_10;
uses Crt;
var n:integer;
procedure wiersz(n:integer);
var i:integer;
begin
for i:=1 to n do Write('$');
WriteLn;
end;
procedure trojkat(n:integer);
var i:integer;
begin
for i:=1 to n do wiersz(i);
end;
begin
ClrScr;
trojkat(10);
repeat until keypressed;
end.
/\/\irosław Paja, gg:799450
4
Program 11. Napisz program, który umożliwi wydrukowanie w każdym narożniku pustego ekranu dowolnego
znaku. Zdefiniuj procedurę z parametrem, której zadaniem będzie wypisanie tego znaku.
program zadanie_6_11;
uses Crt;
procedure Znak(c:char);
begin
ClrScr;
GotoXY(1,1);
Write(c);
GotoXY(80,1);
Write(c);
GotoXY(1,24);
Write(c);
GotoXY(80,24);
Write(c);
end;
begin
ClrScr;
Znak('@');
repeat until keypressed;
end.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _
6.
Wydobywanie dźwięku - standardowe procedury języka Pascal
Sound(częstotliwość : Word; - powoduje wygenerowanie dźwięku o podanej częstotliwości. Dźwięk wydo-
bywa się z głośnika do czasu aż zostanie wyłączony bezparametrową procedurą NoSound;
Delay(milisekundy : Word); - zatrzymuje wykonywanie programu na podaną ilość milisekund (1000ms =
1s),
Wygenerowanie półsekundowego dźwięku o częstotliwości 640Hz uzyskuje się poprzez trzy polecenia:
Sound(640);
Delay(500);
NoSound;
Jeżeli zamierzamy w programie często generować różne dźwięki, to można do tego celu zdefiniować
procedurę dźwięk(s,d):
procedure dzwiek (Czest, Czas : Word);
begin
Sound(Czest);
Delay(Czas);
NoSound;
end;
częstotliwości nut
Nuta\ Oktawa
C
D
E
F
G
A
H
C
3
131
147
165
175
196
220
247
262
4
262
294
330
349
392
440
494
523
Zadanie 12. Napisz program, który generujący dźwięk.
/\/\irosław Paja, gg:799450
5
Temat VII.
Sposoby przekazywania parametrów
program zadanie_7_1;
uses Crt;
var a,b:integer;
procedure przezWartosci(
x, y: integer
);
{ przekazywanie parametrów przez wartosc }
begin
x:= x+1;
y:= y-1;
Writeln('x = ',x);
Writeln('y = ',y);
end;
procedure przezZmienna(
var x, y: integer
);
{ przekazywanie parametrów przez zmienna }
begin
x:= x+1;
y:= y-1;
Writeln('x = ',x);
Writeln('y = ',y);
end;
begin;
ClrScr;
Write('Podaj a, a = ');
Readln(a);
Write('Podaj b, b = ');
Readln(b);
writeln;
przezZmienna(a,b);
Writeln(' - - - - - - - - ');
Writeln('a = ',a);
Writeln('b = ',b);
repeat until keypressed;
end.
Tabela do programu przekazywanie_parametrow:
wartości zmiennych
x
y
a
b
na początku procedury przez________
na końcu procedury przez________
po powrocie do programu głównego
(zmienna przestaje istnieć)
(zmienna przestaje istnieć)
1.
Przekazywanie parametrów przez wartość
Wywołanie procedury w programie głównym powoduje, że w miejsce parametrów formalnych (x, y),
przekazywanych przez wartość, są wprowadzone parametry aktualne (a, b).
Przy przekazywaniu parametrów przez wartość zmienna x i odpowiadająca jej zmienna a zajmują dwa
różne miejsca w pamięci komputera.
2.
Przekazywanie parametrów przez zmienną
Przed listą parametrów wpisuje się słowo kluczowe var. Zapis taki oznacza zarezerwowanie tego sa-
mego miejsca w pamięci dla parametrów formalnych i aktualnych. Dlatego też przekazywanie parame-
trów przez zmienną określa się jako przekazywanie parametrów przez adres.
/\/\irosław Paja, gg:799450
6
Program 2. Przeanalizuj program, w którym zastosowano dwa sposoby przekazywania argumentów do proce-
dur obliczających cenę brutto towaru.
program zadanie_7_2;
uses Crt;
var cena, podatek :Real;
procedure przezWartosc(
cena:Real;
var podatek:Real);
begin
podatek:=cena*0.22;
cena:=cena+podatek;
end;
procedure przezZmienna(
var cena:Real;
var podatek:Real);
begin
podatek:=cena*0.22;
cena:=cena+podatek;
end;
begin
Clrscr;
podatek:=0;
Write('Podaj cene towaru: ');
readln(cena);
przezWartosc(cena,podatek);
{przezZmienna(cena,podatek);}
Writeln('Cena brutto: ',cena:5:2);
Writeln('podatek: ',podatek:5:2);
repeat until keypressed;
end.
Program 3. Napisz program, który skraca podany ułamek. Zdefiniuj funkcje NWD i procedurę skracaj.
program zadanie_7_3;
uses Crt;
var a,b : integer;
function NWD(x,y:integer):integer;
begin
while x<>y do
if x > y then x:=x-y
else y:=y-x;
NWD:=x;
end;
procedure skracaj(var k,l :integer);
var dzielnik : integer;
begin
dzielnik:=NWD(k,l);
k:=k div dzielnik;
l:=l div dzielnik;
end;
begin
ClrScr;
Write('Podaj a: '); Readln(a);
Write('Podaj b: '); Readln(b);
Writeln('a/b = ',a,'/',b);
Skracaj(a,b);
Writeln('po skroceniu: ');
Writeln('a/b = ',a,'/',b);
repeat until keypressed;
end.
/\/\irosław Paja, gg:799450
7
Program 4. Napisz program, który wyświetli na ekranie prostokąt składający się ze znaków ”*” o wymiarach
n x m. Zdefiniuj procedurę prostokat (z dwoma parametrami).
program zadanie_7_4;
uses Crt;
var a,b :integer;
procedure Pytaj(var a,b:integer);
begin
repeat
Write('Podaj bok a, a = '); Readln(a);
Write('Podaj bok b, b = '); Readln(b)
until (a>0) and (b>0);
writeln;
end;
procedure prostokat(a,b:integer);
var i,j:integer;
begin
for i:=1 to b do
begin
writeln;
for j:=1 to a do write('*');
end;
end;
begin
ClrScr;
Pytaj(a,b);
prostokat(a,b);
repeat until keypressed;
end.
Program 5. Napisz program, który wyświetli na ekranie trójkąt prostokątny składający się z n znaków ”$”.
Zdefiniuj odpowiednie procedury. (Zdefiniuj procedurę, która będzie umożliwiała wprowadzenie
wymiarów trójkąta).
program zadanie_7_5;
uses Crt;
var n:integer;
procedure Pytaj(var n:integer);
begin
repeat
Write('Podaj wielkosc figury (1-49): ');
ReadLn(n);
if (n<1) or (n>50) then Writeln('Nie moge namalowac takiej figury!!')
until (n>=1) and (n<50);
writeln;
end;
procedure wiersz(n:integer);
var i:integer;
begin
for i:=1 to n do Write('$');
WriteLn;
end;
procedure trojkat(n:integer);
var i:integer;
begin
for i:=1 to n do wiersz(i);
end;
begin
ClrScr;
Pytaj(n);
trojkat(n);
repeat until keypressed;
end.
/\/\irosław Paja, gg:799450
8
Program 6. Napisz program, który korzystając z procedur wyświetli na ekranie monitora świąteczną choinkę.
program zadanie_7_6;
uses Crt;
var n:integer;
procedure Pytaj(var n:integer);
begin
repeat
Write('Podaj wysokosc choinki (6-40): '); ReadLn(n);
until (n>=6) and (n<40);
end;
procedure Wiersz(poziom:integer);
var i:integer;
begin
for i:=1 to n-poziom do Write(' ');
for i:=1 to poziom*2-1 do Write('$');
WriteLn;
end;
procedure choinka(n:integer);
var i: integer;
begin
for i:=1 to n-3 do Wiersz(i);
for i:=1 to 3 do Wiersz(1);
end;
begin
ClrScr;
Pytaj(n);
Writeln;
choinka(n);
repeat until keypressed;
end.
/\/\irosław Paja, gg:799450
9
Temat VIII.
Instrukcja wyboru case
case przełącznik of
wartość-1 : akcja-1;
wartość-2 : akcja-2;
...
else akcja-domyślna
end;
case znak of
'+' : c := a + b;
'-' : c := a – b
else Writeln(‘Zly znak’);
end;
case miesiac of
1,3,5,7,8,10,12 : dni := 31;
4,6,9,11
: dni := 30;
2
: dni := 28
end
Zadanie 1. Napisz program, który w zależności od podanej liczby wyświetli numer miesiąca. Jeżeli liczba jest
inna niż {1..12} program wyświetla komunikat ”numer nie poprawny”.
program zadanie_8_1;
var m: integer; {numer miesiąca }
begin
write ('podaj numer miesiąca: ');
readln (m);
case m of
1: writeln ('styczen');
2: writeln ('luty');
....
12: writeln ('grudzien');
else writeln ('numer nie poprawny')
end;
end.
Zadanie 2. Napisz program, który wykonuje działania: +, -, *, / na wprowadzonych liczbach rzeczywistych.
Zdefiniuj odpowiednie funkcje (np. dodawanie(a,b)).
/\/\irosław Paja, gg:799450
10
Temat IX.
Praca z danymi tekstowymi
var nazwa-zmiennej: string;
- dana typu string zajmuje zawsze 256 bajtów, niezależnie od rzeczywistej długości tekstu.
Aby "skrócić" łańcuch można wykorzystać deklarację: var nazwa-zmiennej : string[długość]
'C' < 'P'
(kod ASCII znaku 'C' jest mniejszy od kodu 'P')
Jeżeli:
lancuch1:='Turbo',
lancuch2:= 'Pascal',
to wynikiem sklejenia obu zmiennych:
wynik := lancuch1 + lancuch2;
będzie oczywiście tekst 'TurboPascal'.
Length(łańcuch : string ) : integer;
Funkcja zwraca długość danego łańcucha.
s:='Tekst';
Writeln(Length(s));
5
Chr(kod : byte):char;
Funkcja zwraca znak (wartość typu char) o poda-
nym kodzie ASCII.
Write(Chr(7));
Write(#7);
Ord(x) : longint;
Funkcja zwraca kod ASCII podanego znaku.
Writeln(Ord('A'));
65
UpCase(Ch : char) : char;
Konwertuje znak do wielkiej litery.
UpCase('a')='A';
UpCase('B')='B';
ReadKey
Funkcja odczytuje wciśnięty klawisz.
a:=ReadKey;
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _
Zadanie 1. Napisz program, który wypisuje kod
wczytanego z klawiatury znaku.
program zadanie_9_1;
uses Crt;
var znak : Char;
begin
ClrScr;
Write('Wpisz dowolny znak : ');
Readln(znak);
Writeln('Wpisales znak [', znak, '] o kodzie ',
Ord(znak));
repeat until keypressed;
end.
Zadanie 2. Napisz program, który wczytuje napis
i zamienia w nim wszystkie małe litery na duże:
program zadanie_9_2;
uses Crt;
var napis : string;
i : byte;
Begin
Write('Podaj napis: ');
Readln(napis);
For i:=1 To Length(napis) Do napis[i]
:=UpCase(napis[i]);
Writeln('po zamianie: ',napis);
repeat until keypressed;
end.
Zadanie 3. Napisz program, który będzie wypisywał kody znaków
naciskanych na klawiaturze do czasu wciśnięcia klawisza ESCAPE.
program zadanie_9_3;
Uses Crt;
var Znak : Char;
begin
ClrScr;
WriteLn('Nacisnij dowolny klawisz lub Escape : ');
Znak:=ReadKey;
While Ord(Znak)<>27 Do
begin
WriteLn('Znak = [', znak, '] Kod znaku = ', Ord(znak));
znak:=ReadKey;
end;
end.
/\/\irosław Paja, gg:799450
11
Zadanie 4. Napisz program, oraz zdefiniuj funkcję IloscWystapien(a,b), która zwróci ilość wystąpień podanego
znaku w podanym napisie.
program zadanie_9_4;
uses Crt;
var napis : string;
litera : char;
ile : byte;
function iloscWystapien(s : string; znak : char) : byte;
var i, wynik : byte;
begin
wynik:=0;
for i:=1 to Length(s) do
if s[i]=znak then Inc(wynik);
iloscwystapien:=wynik;
end;
begin
ClrScr;
Write('Podaj napis: '); Readln(napis);
Write('Podaj litere: '); Readln(litera);
ile:=iloscwystapien(napis,litera);
Writeln('W podanym napisie litera "',litera,'" wystepuje ',ile,' razy.');
repeat until keypressed;
end.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _
Pozostałe funkcje i procedury łańcuchowe
Concat(łańcuch1,łańcuch2, ...): string;
Funkcja łączy otrzymane łańcuchy w jeden, który następnie zwraca.
Writeln(Concat('abc','def','ghi'));
- abcdefghi
Writeln('abc'+'def'+'ghi');
Copy(łańcuch : string; skąd, ile : integer): string;
Funkcja zwraca podciąg łańcucha zaczynający się od indeksu skąd i mający ile znaków. Jeśli skąd jest większe
niż długość łańcucha, to zwracany jest łańcuch pusty. Jeśli ile podaje więcej znaków, niż ich jest w łańcuchu od
indeksu skąd, to zwraca tyle znaków, ile jest.
Writeln(Copy('abcde',1,3));
'abc'
Writeln(Copy('abcde',6,3));
''
Writeln(Copy('abcde',4,3));
'de'
Pos(podciąg, łańcuch : string) : byte;
Podaje pozycje wyszukanego podciągu w danym łańcuchu znaków.
Pos(‘Pascal’,’Turbo Pascal’)
7
Delete(var s : string; początek, ile : integer);
Procedura usuwa z określonego parametrem s łańcucha ile znaków zaczynając od indeksu początek.
s:='jakiś długi tekst';
Delete(s,7,6);
Writeln(s);
'jakiś tekst'
Val(S:string;V:integer;error:integer);
Funkcja przekształca ciąg znaków na liczbę.
val('123',i,error);
i=123
val('abc',i,error);
error<>0
Str(X;S:string);
Instrukcja zamienia liczbę X na łańcuch znaków.
/\/\irosław Paja, gg:799450
12
Temat X.
Tablica jako przykład trybu strukturalnego.
Deklaracja tablicy
var zmienna: array [1..n] of typ elementów tablicy;
Tablica jest złożoną strukturą danych, składającą się z określonej liczby elementów tego samego typu.
Deklaracja tablicy składającej się z 20 znaków: array [1..20] of char;
Zadanie 1. Napisz program, który wczytuje dane do tablicy, a potem je wyświetla.
program zadanie_10_1;
uses Crt;
const n = 3;
var I : integer;
tab : array [1..n] of integer;
procedure Czytaj(n:byte);
begin
for i:=1 to n do
begin
write('tab[',i,']= ');
Readln(tab[i]);
end;
end;
procedure Wyprowadz(n:byte);
begin
for i:=1 to n do
begin
write('tab[',i,']= ',tab[i]);
writeln;
end;
end;
begin
ClrScr;
Writeln('Wprowadz elementy do tabl-
licy');
Czytaj(n);
Writeln;
Writeln('Elementy tablicy');
Wyprowadz(n);
repeat until keypressed;
end.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _
Do otrzymania liczb losowych służy procedura Randomize i funkcja Random(),
Funkcja Random(zakres) zwraca całkowitą liczbę pseudolosową z zakresu 0..zakres-1. Argument zakres po-
winien być liczbą całkowitą, najczęściej typu Word.
Zadanie 2. Napisz program, który z podanego zakresu losowo wczyta liczby do tablicy, a potem je wyświetla.
program zadanie_10_2;
uses Crt;
const n = 10;
var i,x : integer;
tab : array [1..n] of integer;
procedure Czytaj(n:byte);
begin
for i:=1 to n do tab[i]:=
random(x);
end;
procedure Wyprowadz(n:byte);
begin
for i:=1 to n do begin
write('tab[',i,']= ',tab[i]);
writeln;
end;
end;
begin
ClrScr;
Write('Podaj przedzial liczb (max 50): ');
readln(x);
Czytaj(n);
Randomize;
Writeln('Elementy tablicy');
wyprowadz(n);
repeat until keypressed;
end
/\/\irosław Paja, gg:799450
13
Zadanie 3. Napisz program, który zapełnia tablicę przypadkowymi liczbami z zakresu (0,100) i znajduje
największą oraz najmniejszą z nich.
program zadanie_10_3;
uses Crt;
var liczby
: array[1..20] of byte;
i, N, Min, Max
: byte;
begin
ClrScr;
Randomize;
for i := 1 to 20 do liczby[i] := Random(101);
Min := liczby[1];
Max := liczby[1];
writeln; write('Tablica: ');
for i := 1 to 20 do
begin
write(liczby[i], ' ');
if liczby[i] > Max then Max := liczby[i];
if liczby[i] < Min then Min := liczby[i];
end;
writeln;
writeln('Najmniejsza liczba to: ', Min);
writeln('Najwieksza liczba to: ', Max);
repeat until keypressed;
end.
Zadanie 4. Napisz program, który oblicza średnią wprowadzonych do tablicy liczb.
program zadanie_10_4;
uses Crt;
const n = 3;
var I : integer;
tab : array [1..n] of integer;
procedure Czytaj(n:byte);
begin
…
end;
procedure Wyprowadz(n:byte);
begin
…
end;
function Srednia(n:byte):real;
var suma, sr :real;
begin
suma:=0;
for i:=1 to n do suma:=suma+tab[i];
sr:=suma/n;
Srednia:=sr;
end;
begin
ClrScr;
Writeln('Wprowadz elementy do tabllicy');
Czytaj(n);
Writeln('Srednia wprowadzonych liczb to: ');
Writeln;
Writeln('Elementy tablicy');
wyprowadz(n);
Writeln('Srednia wprowadzonych liczb to: ',
srednia(n):5:2);
repeat until keypressed;
end.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _
W przykładach wykorzystałem materiały z:
1.
książki TURBO Pascal 5.5 Andrzeja Marciniaka
2.
podręczników Grażyny Koby Informatyka cz. I i Informatyka cz. II
3.
z serwisu: http://helion.pl/online/turbo-pasca