Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ГОС информатика / ПРАКТИКА / !!!практика_паскаль_7заданий

.doc
Скачиваний:
36
Добавлен:
18.03.2015
Размер:
47.1 Кб
Скачать

1)Среднесуточная температура

const DAYS = 366;

var tMonth: array[1..12] of real;

i, month: integer;

t, tYear, min: real;

c: char;

begin

for i:=1 to 12 do tMonth[i]:= 0;

tYear := 0;

for i:=1 to DAYS do begin

repeat read(c); until c = '.';

read (month);

readln (t);

tMonth[month] := tMonth[month] + t;

tYear := tYear + t;

end;

for i:=1 to 12 do

case i of

2: tMonth[i] := tMonth[i] / 29;

4,6,9,11: tMonth[i] := tMonth[i] / 30;

else tMonth[i] := tMonth[i] / 31;

end;

tYear := tYear / DAYS;

min := abs(tMonth[1] - tYear);

for i:=2 to 12 do

if abs(tMonth[i] - tYear) < min then

min := abs(tMonth[i] - tYear);

writeln(tYear:0:2);

for i:=1 to 12 do

if abs(tMonth[i] - tYear) = min then

writeln(i,' ',tMonth[i]:0:2,' ',tMonth[i]-tYear:0:2);

end.

2)Опишите алгоритм поиска трёх последовательных элементов, сумма которых максимальна, в числовом массиве из 30 элементов. Решение на языке Т-Паскаль.

Program MAXSUM;

Uses CRT;

var a: array[1..30] of integer;

i,b,c,d,sum: integer;

Begin

clrscr;

Randomize;

b:=0; c:=0; d:=0;

for i:=1 to 30 do

begin

a[i]:=Random(100);

write(a[i]:3);

end;

writeln;

for i:=1 to 30 do

if a[i]>b then b:=a[i];

writeln('b= ',b);

for i:=1 to 30 do

if (a[i]<b) and (a[i]>c) then c:=a[i];

writeln('c= ',c);

for i:=1 to 30 do

if (a[i]>d) and (a[i]<c) then d:=a[i];

writeln('d= ',d);

sum:=b+c+d;

writeln('Summa= ', sum);

readln;

End.

3) Опишите алгоритм подсчёта числа элементов равных максимальному на языке Т-Паскаль.

Program Maximum;

Uses CRT;

var a: array[1..10] of integer;

max,i,k: integer;

Begin clrscr;

max:=0; k:=0;

for i:=1 to 10 do

begin

writeln('vvedite ',i,' element');

readln(a[i]);

end;

clrscr;

for i:=1 to 10 do

begin

write(a[i]:3);

if a[i]>max then max:=a[i];

end;

writeln;

for i:=1 to 10 do

if a[i]=max then k:=k+1;

writeln('elementov ravnih maximalnomu ',k);

readln;

End.

4) В матрице размером m x n найти минимальную сумму по строкам.

Program Mat;

uses CRT;

var a: array [1..25,1..25] of integer;

i,j,m,n,b,c:integer;

Begin Randomize; clrscr; c:=9999;

Write('Vvedite razmer matrici m x n m= '); readln(m);

Write('n= '); readln(n);

for i:=1 to m do

Begin

for j:=1 to n do

begin

a[i,j]:=Random(100);

write(a[i,j]:3);

end;

writeln;

end;

for i:=1 to m do

Begin

b:=0;

for j:=1 to n do

b:=b+a[i,j];

write(i:3,b:5);

if b<c then c:=b;

writeln;

end;

writeln('min ctr ', c);

readln;

end.

5) В матрице размером m x n найти минимальную сумму по столбцам.

Program Mat;

uses CRT;

var a: array [1..25,1..25] of integer;

i,j,m,n,b,c:integer;

Begin Randomize; clrscr; c:=9999;

Write('Vvedite razmer matrici m x n m= '); readln(m);

Write('n= '); readln(n);

for i:=1 to m do

Begin

for j:=1 to n do

begin

a[i,j]:=Random(100);

write(a[i,j]:3);

end;

writeln;

end;

for i:=1 to m do

Begin

b:=0;

for j:=1 to n do

b:=b+a[j,i];

write(i:3,b:5);

if b<c then c:=b;

writeln;

end;

writeln('min stolb ', c);

readln;

end.

6) В матрице размером m x n заменить строки столбцами.

Program Mat;

uses CRT;

var a: array [1..25,1..25] of integer;

i,j,m,n,b:integer;

Begin Randomize; clrscr;

Write('Vvedite razmer matrici m x n m= '); readln(m);

Write('n= '); readln(n);

for i:=1 to m do

Begin

for j:=1 to n do

begin

a[i,j]:=Random(100);

write(a[i,j]:3);

end;

writeln;

end;

writeln;

for i:=1 to m do

for j:=i to n do

begin

b:=a[i,j];

a[i,j]:=a[j,i];

a[j,i]:=b;

end;

for i:=1 to m do

begin

for j:=1 to n do

write(a[i,j]:3);

writeln;

end;

readln;

end.

7) Составить базу данных группы студентов, предусмотрев фамилия, телефон, оценки за экзамен по трём предметам. Вывести на экран список студентов со всеми данными, только студентов, сдавших сессию на 4, 5 и студентов, не сжавших хотя бы один экзамен.

program Base;

uses crt;

type komp=record

Family:string[150];

tel:real;

oc1:integer;

oc2:integer;

oc3:integer;

end;

var

f:file of komp;

a,i:integer;

PK:komp;

procedure view;

begin

writeln(i:3,pk.Family:12,' ',pk.tel:10:0,pk.oc1:9,pk.oc2:9,pk.oc3:9);

inc(i);

end;

begin

clrscr;

repeat

writeln('Glavnoe menu:');

writeln('1-Vivesti vseh studentov');

writeln('2-Studenty na 4 i 5');

writeln('3-Doljniki');

writeln('4-Dobavit studenta');

writeln('5-Exit');

writeln;

write('Vvedite komandu ');readln(a);

case a of

1:begin

i:=1;

writeln('| # | Familiya | Telephone | 1 examen | 2 examen | 3 examen |');

assign(f,'data.dat');

reset(f);

while not eof(f) do

begin

read(f,pk);

view;

end;

close(f);

end;

2:begin

assign(f,'data.dat');

reset(f);

writeln('| # | Familiya | Telephone | 1 examen | 2 examen | 3 examen |');

while not Eof(f) do

begin

read(f,pk);

if (PK.oc1>=4) and (PK.oc2>=4) and (PK.oc3>=4) then view;

end;

close(f);

end;

3:begin

assign(f,'data.dat');

reset(f);

writeln('| # | Familiya | Telephone | 1 examen | 2 examen | 3 examen |');

while not Eof(f) do

begin

read(f,pk);

if (PK.oc1<=2) or (PK.oc2<=2) or (PK.oc3<=2) then view;

end;

close(f);

end;

4:begin

write('Vvedite familiyu ');readln(PK.Family);

write('Vvedite telephon ');readln(PK.tel);

write('Vvedite ocenku za 1 examen ');readln(PK.oc1);

write('Vvedite ocenku za 2 examen ');readln(PK.oc2);

write('Vvedite ocenku za 3 examen ');readln(PK.oc3);

assign(f,'data.dat');

reset(f);

Seek(f,FileSize(f));

write(f,pk);

close(f);

end;

end;

until a=5;

end.