Скачать .docx  

Реферат: Одномерные массивы. Организация ввода и вывода данных

Колледж Экономики и информационных технологий

Отчет по учебной практике

Дисциплина: Основы алгоритмизации.

Выполнила: Гавриляченко Н.

Группа Г-121

Проверила: Абилова Ж.М.

Уральск, 2009

Одномерные массивы.

Организация ввода и вывода данных

Вариант- 6.

Задание 1.

Организовать ввод и вывод одномерного массива А1..А10 из вещественных чисел с помощью формулы А[i]:=cos(i+2i+1).

program p1;

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

i:integer;

begin

for i:=1 to 10 do a[i]:=cos(sqr(i)+2*i+1)

for i:=1 to 10 do

writeln ('a[',i,']=',a[i]);

readln;

end.

Задание 2.

Напишите программу, которая сначало вводит 15 чисел, складывает отдельно элементы с четными номерами и складывает отдельно нечетные элементы и выдает полученные результаты.

Program p1;

Var a: array [1..15] of integer;

i,j,k,n:integer;

Begin

For i:=1 to 15 do

Read(a[i]);

For i:=1 to 15 do

Write(' ',a[i]);

For i:=1 to 15 do

Begin

If i mod 2=0 then k:=k+a[i];

If i mod 2=1 then n:=n+a[i];

End;

WriteLn('k=',k);

Writeln('n=',n);

Readln;

End.

Задание 3. Организовать одномерный массив из 20 целых чисел. Найти сумму всех квадратных элементов в массиве и вывести на экран.

program p2;

uses crt;

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

i,s:integer;

begin clrscr;

writeln ('vvedi 20 chisel');

for i:=1 to 20 do readln (a[i]);

for i:=1 to 20 do a[i]:=sqr(i);

for i:=1 to 20 do writeln ('a[','i',']=',a[i]);

for i:=1 to 20 do

s:=s+a[i];

writeln ('summa vsex kvadratnix elementov=',s);

readln;

end.

Задание 4.

Организовать одномерный массив путем заполнения его квадратами чисел от 1 до 10. Найти сумму чисел кратных 3.

Program p4;

Uses crt;

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

i,s:integer;

Begin

ClrScr;

Writeln('vvedite 10 chisel');

for i:=1 to 10 do Readln (a[i]);

for i:=1 to 10 do a[i]:=Sqr(i);

For i:=1 to 10 do WriteLn('a[',i,']=',a[i]);

For i:=1 to 10 do

if (a[i] mod 3=0) then

s:=s+a[i];

writeln('s=',s);

Readln;

End.

Задание 5.

Организовать одномерный массив из 20 чисел. Удвоить наибольший и наименьший элементы.

Program p6;

Uses crt;

Var a:array[1..20] of integer;

i,max,min:integer;

Begin

ClrScr;

WriteLn('Vvedite massiv');

For i:=1 to 20 do readln(a[i]);

max:=a[1];

For i:=1 to 20 do If a[i]>max then max:=a[i];

max:=max*2;

min:=a[1];

For i:=1 to 20 do If a[i]<min then min:=a[i];

min:=min*2;

Writeln('Maksimalnij element massiva=',max);

Writeln('Minimalnij element massiva=',min);

Readln; End.

Задание 6.

Организовать массив из 20 чисел. Отсортировать по возрастанию. Вывести массив до и после обработки.

Program sortirovka;

Uses crt;

Var a:array[1..20] of integer;

i,j,b,d:integer;

Begin

ClrScr;

Randomize;

For i:=1 to 20 do a[i]:=random(51);

For i:=1 to 20 do Write('a[',i,']=',a[i]:3);

For j:=1 to 19 do

For i:=1 to 19 do

If a[i]>a[i+1] then

Begin

b:=a[i];

a[i]:=a[i+1];

a[i+1]:=b

End;

For i:=1 to 20 do Write('a[',i,']=',a[i]:3);

Readln;

End.

Задание 7

Организовать одномерный массив из 15 чисел. Первые 7 чисел отсортировать по возрастанию, последние 7 чисел по возрастанию. Вывести массив до и после обработки.

Program p8;

Uses crt;

Var a:array [1..15] of integer;

i,j,t,b:integer;

Begin

ClrScr;

For i:=1 to 15 do ReadLn(a[i]);

For j:=1 to 7 do

Begin

t:=j;

For i:=j to 7 do

If a[i]<a[t] then

t:=i;

b:=a[t];

a[t]:=a[j];

a[i]:=b;End;

For j:=9 to 15 do

Begin

t:=i;

For i:=j to 15 do

If a[i]<a[t] then

t:=i;b:=a[t];a[t]:=a[j];

a[j]:=b;End;

For i:=1 to 15 do

Write(' ',a[i]); End.

Задание 8.

В одномерном массиве целых чисел определить минимальный элемент, заменить его на 0. Стоящие за ним элементы на 6.

Program p2;

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

i,min,j,t:integer;

begin

Writeln ('vvedite massiv');

For i:=1 to 10 do Readln(a[i]);

For j:=1 to 10 do

begin

min:=a[1];

t:=1;

for i:=2 to 10 do

If a[i] <min: =a[i];

t:=i;End;

a[t]:=0;

for i:=t+1 to 10 do

a[i]:=6;

for i:=1 to 10 do

Writeln('a[',i,']=',a[i]); Readln; End.

Задание 9.

Организовать одномерный массив целых положительных чисел. Найти среднее арифметическое, определить количество элементов, больших этого среднего.

Program p3;

Uses crt;

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

i,s,n:integer;

sa,sg:real;

Begin

ClrScr;

Writeln ('vvedite massiv');

Begin

For i:=1 to 10 do Readln(a[i]);

End;

For i: =1 to 10 do

s:=s+a[i];

sa:=s/5;

For i:=1 to 10 do

If a[i]>sa then

Begin

n:=n+1;

End;

Writeln ('srednee arifmeticheskoe=', sa:3:2);

Writeln ('V massive',n,'elementov bolshih sred.arifmetich'); Readln; End.

Задание 10.

Организовать массив. Определить среднее арифметическое и геометрическое, сравнить их между собой, если ср. арифметическое>ср. геометрического, то прибавить к каждому элементу массива 2, если ср. геометрическое>ср. арифметического, то умножить на 2.

Program p4;

Uses crt;

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

c,n:real;

i:integer;

Begin

ClrScr;

Writeln('vvedite massiv');

for i:=1 to 10 do readln(a[i]);

for i:=1 to 10 do

c:=(c+a[i]);

c:=c/10;

for i:=1 to 10 do

n:=sqr(10);

if c>n then for i:=1 to 10 do

a[i]:=a[i]+2 else if n>c then for i:=1 to 10 do a[i]:=a[i]*2;

Writeln('c=',c,' n=',n);

Readln;

End.

Задание 11.

Дан массив 10 целых чисел. Отсортируйте его, найдите в нем контрольное число. Все элементы до контрольного числа замените на противоположные.

Program p5;

Uses crt ;

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

c,b,i,t,j:integer;

begin

Writeln('vvedite massiv');

For i:=1 to 10 do Readln(a[i]);

For j:=1 to 10 do

Begin

t:=j;

For i:=j to 10 do

If a[i]<a[t] then t:=i;

b:=a[t];

a[t]:=a[j];

a[j]:=b;

End;

Write('vivesti kontrolnoe chislo b=');

readln(b);

c:=0;

For i:=1 to 10 do

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

If c:=0 then

WriteLn('ravnih b net')

else for i:=1 to c-1 do a[i]:=-a[i];

For i:=1 to 10 do write(a[i]:2);

Readln;

End.

Задание 12.

Дан массив, состоящий из 20 символов. Отсортировать его по возрастанию. Ввести 2 числа a и b от 0 до 255. Определить количество элементов, входящие в отрезок [char(a), char(b)].

Program p6;

Uses crt;

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

i,j,b,t,c,f:integer;

Begin

Writeln('vvedite 20 elemenyov');

for i:=1 to 20 do Readln(a[i]);

for j:=1 to 20 do

Begin

t:=j;

for i:=j to 20 do

if a[i]<a[t] then t:=i;

b:=a[t];

a[t]:=a[j];

a[j]:=b;

End;

writeln('vvedite 2 chisla c<f');

Readln(c,f);

Writeln('elementi vhodyachie v otrezok [c,f]');

for i:=1 to 20 do

if (a[i]>=c) and (a[i]<=f) then write(a[i]:3);

WriteLn;

For i:=1 to 20 do

Write(' ',a[i]);

Readln;

End.

Задание 13.

Дан одномерный массив из 10 целых чисел. Среди элементов массива найти корни квадратного уравнения x2 +5-6=0. Если таковые отсутствуют, то вывести сообщение об этом.

ProgramP8;

var m:array [1..5] of integer;

p, i:integer;

a,b,c,x1,x2:real;

D:real;

Begin

a:=1;

b:=5;

c:=-6;

D:=b*b-4*a*c;

If D>0 then

begin

x1:=(-b+sqrt(D))/(2*a);

x2:=(-b-sqrt(D))/(2*a);

Writeln('pervii koren yravneniya=',x1:1:1);

Writeln('vtoroi koren yravneniya=',x2:1:1);

Writeln('Vvedite massiv');

For i:=1 to 5 do Readln(m[i]); p:=0;

For i:=1 to 5 do

If x1=m[i] then

p:=i;

if p<>0 then Writeln (' ',x1:1:1,' est v massive'); end else

Writeln(' ',x1:1:1,' net v massive');

For i:=1 to 5 do If x2=m[i] then p:=i;

if p<>0 then begin Writeln ('',x2:1:1,' est v massive');end else

Writeln(' ',x2:1:1,' net v massive');

Readln;End.

Вариант 12 .

Задание 14.

Дан массив из 10 чисел, отсортируйте его. Найдите в нем контрольное число. Все элементы после контрольного числа заменить на их квадраты.

Рrogram p1;

Uses crt;

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

c,b,i,j,t:integer;

Begin

ClrScr;

Writeln('vvedite 10 chisel');

For i:=1 to 10 do ReadLn(a[i]);

For j:=1 to 10 do

Begin

t:=j;

for i:=j to 10 do

If a[i]<a[t] then t:=i;

b:=a[t];

a[t]:=a[j];

a[j]:=b;

End;

Write('vvedite kontrolnoe chislo b=');

Readln(b);

a[t]:=0;

for i:=t+1 to 10 do

a[i]:=sqr(a[i]);

For i:=1 to 10 do

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

If c=0 then

Writeln('a[',i,']=',a[i]); Readln; End.

Задание 15.

Напишите программу, которая вводит с клавиатуры 30 целых чисел, определяет среднее арифметическое первых десяти чисел, вторых десяти и последних десяти. После этого определяется максимальное и минимальное среднее арифметическое и выводится сообщение.

Program p2;

Uses crt;

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

i,max,min:integer;

s,sa[1],sa[2],sa[3]:real;

Begin

Writeln('vvedite massiv');

for i:=1 to 30 do Readln(a[i]);

Begin

for i:=1 to 10 do

s:=s+a[i];

sa[1]:=s/10;

Writeln('srednee arifmeticheskoe pervih 10 chisel=',sa[1]:2:2);

for i:=11 to 20 do

s:=s+a[i];

sa[2]:=s/10;

Writeln('srednee arifmeticheskoe vtorih 10 chisel=',sa[2]:2:2);

for i:=21 to 30 do

s:=s+a[i];

sa[3]:=s/10;

Writeln('srednee arifmeticheskoe tretih 10 chisel=',sa[3]:2:2);

End;

max:=sa[1];

for i:=1 to 3 do

if sa[i]>max then

Begin

max:=sa[i];

End;

min:=a[1];

for i:=1 to 3 do

if sa[i]<min then

Begin

min:=sa[i];

End;

Двумерные массивы. Организация ввода и вывода.

Задание 16.

Организовать два массива a[i] и b[i] целых чисел. Окружность задана уравнением (х-1)2 +(у+2)2 =16. Среди соответствующих пар (a[i], b[i]) вывести те, которые являются координатами внешних точек окружности.

Program p3;

Uses crt;

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

b:array[1..10]of integer;

i:integer;

x,y:real;

Begin

ClrScr;

Writeln('Vvedite massiv a');

For i:=1 to 10 do Readln(a[i]);

Writeln('Vvedite massiv b');

For i:=1 to 10 do Readln(b[i]);

Writeln(' koordinati vneshnih tochek okrugnosti (x-1)^2+(y+2)^2');

For I:=1 to 10 do

If Sqr(a[i]-1)+Sqr(b[i]+2)>16 then

Writeln('[',a[i],',',b[i],']');

Readln;

End.

Задание 17.

Дана функция Z=6x2 +7y. Организовать двумерный массив, значений функции Z от индексов i, j.

а)Определить максимум, минимум функции;

б) Найти среднее арифметическое.

Program p1;

Uses crt;

Var z:array[1..3,1..3] of integer;

i,j,min,max:integer;

sa,s:real;

Begin

ClrScr;

for i:=1 to 3 do

For j:=1 to 3 do

Begin

z[i,j]:=6*Sqr(i)+7*j;

Writeln('z[',i,',',j,']=',z[i,j]); End;

max:=z[1,1];

for i:=1 to 3 do

For j:=1 to 3 do

If z[i,j]>max then

max:=z[i,j];

writeln('maksimalnoe znachenie=',max);

min:=z[1,1];

for i:=1 to 3 do

For j:=1 to 3 do

If z[i,j]<min then

min:=z[i,j];

writeln('Minimalnoe znachenie=',min);

For i:=1 to 3 do

For j:=1 to 3 do

s:=s+z[i,j];

sa:=s/9;

Writeln('srednee arifmeticheskoe=',sa:2:2);

Readln;

End.

Задание 17.

Дана матрица целых чисел размером 5х6 (random). Отсортировать каждую строку матрицы по возрастанию. Вывести матрицу до и после обработки.

Program p2;

Uses crt;

Var a: array[1..5,1..6] of integer;

i,j,n,t:integer;

Begin

ClrScr;

Randomize;

For i:=1 to 5 do

For j:=1 to 6 do a[i,j]:=random(50);

For i:=1 to 5 do begin

For j:=1 to 6 do Write(a[i,j]:3);

Writeln;

End;

Writeln;

For i:=1 to 5 do

For n:=1 to 5 do

For j:=1 to 5 do

If a[i,j]>a[i,j+1] then

Begin

t:=a[i,j];

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

a[i,j+1]:=t;

End;

For i:=1 to 5 do

Begin

For j:=1 to 6 do

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

Writeln;

End;

Readln;

end.

Задание 18.

Дана матрица целых чисел размером 3х5. Заменить все положительные элементы на 5, все отрицательные на 3, все нули на нуль.

Program p3;

Uses crt;

Var a:array[1..3,1..5] of integer;

i,j:integer;

Begin

ClrScr;

Writeln('vvedite elementi massiva');

For i:=1 to 3 do

for j:=1 to 5 do Read(a[i,j]);

For i:=1 to 3 do

For j:=1 to 5 do

Begin

If a[i,j]>0 then a[i,j]:=5;

If a[i,j]<0 then a[i,j]:=3 end;

For i:=1 to 3 do begin

For j:=1 to 5 do

Write(a[i,j]:2);

Writeln;End;

readln;

End.

Задание 19.

Даны две матрицы А и В размером 4х4. Вычислить и вывести на экран матрицу С=А+В. Найти сумму элементов матрицы С, кратных 3, но не кратных 2.

Program p4;

Uses crt;

Var A,B,C:array[1..4,1..4] of integer;

i,j,sum:integer;

begin

ClrScr;

Writeln('vvedite elementi massiva A');

For i:=1 to 4 do

For j:=1 to 4 do Read(A[i,j]);

Writeln('vvedite elementi massiva B');

For i:=1 to 4 do

For j:=1 to 4 do Read(B[i,j]);

Writeln;

For i:=1 to 4 do

For j:=1 to 4 do

C[i,j]:=A[i,j]+B[i,j];

Write('C[i,j]=',C[i,j]);

for i:=1 to 4 do

For j:=1 to 4 do

Writeln(c[i,j]);

for i:=1 to 4 do

For i:=1 to 4 do

For j:=1 to 4 do

If (C[i,j] mod 3=0) and (c[i,j] mod 2<>0) then

sum:=sum+c[i,j];

Writeln('symma elementov matrici C=',sum:2);

For i:=1 to 4 do

For j:=1 to 4 do

Writeln('C[',i,', ',j,']=',C[i,j]);writeln; Readln; End.

Задание 20.

Даны две матрицы А и В. Сравнить матрицы поэлементно. Найти количество элементов матрицы А, больших, чем элементы матрицы В и наоборот. Сравнить их. Вывести сообщение: А>В или В>А.

Program p5;

Uses crt;

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

i,j,t,k:integer;

Begin

ClrScr;

Writeln('vvedite elementi matrici a');

For i:=1 to 4 do

For j:=1 to 4 do Read(a[i,j]);

Writeln('vvedite elementi massiva b');

For i:=1 to 4 do

For j:=1 to 4 do Read(b[i,j]);

For i:=1 to 4 do

For j:=1 to 4 do

Begin

If a[i,j]>b[i,j] then t:=t+1;

If b[i,j]>a[i,j] then k:=k+1;

end;

Writeln('t=',t);

Writeln('k=',k);

If t>k then Writeln('elementi massiva a bolshe b') else

Writeln('elementi massiva b bolshe a');

If t=k then Writeln('elementi massiva a i b ravni');

Writeln;

Readln;

End.

Задание 21.

Организовать двумерный массив (размерность 3х3). Вывести на экран в виде матрицы.

Program p1;

Uses crt;

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

i,j:integer;

Begin

ClrScr;

Writeln('vvedite elementi matrici: a[',i,' ',j,']');

For i:=1 to 3 do

For j:=1 to 3 do

Readln(a[i,j]);

For i:=1 to 3 do begin

For j:=1 to 3 do

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

Writeln;end;

Readln;

End.

Задание 22.

Дана матрица 4х3 целых чисел. Найти сумму элементов, сумма индексов которых является:

а) Четным числом;

б) Кратно 3.

Program P2;

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

i,j,S:integer;

Begin

For i:=1 to 4 do

For j:=1 to 3 do

read(a[i,j]);

For i:=1 to 4 do

for j:=1 to 3 do

If (i+j) mod 2 =0 then

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

Writeln('Summa elementov,sum indeksov kot chetnaya=',S);

For i:=1 to 4 do

for j:=1 to 3 do

if (i+j) mod 3 =0 then

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

Writeln('Summa el-v,sum indeksov kratna 3=',S);

Readln;

End.

Задание 23.

Дана матрица вещественных чисел 3х3. Диагональные элементы матрицы заменить на максимальные.

Program z;

uses crt;

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

i,j,max:integer;

begin

clrscr;

writeln('vvedite massiv');

For i:=1 to 3 do

For j:=1 to 3 do

readln(a[i,j]);

For i:=1 to 3 do

For j:=1 to 3 do

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

writeln('max=',max);

For i:=1 to 3 do begin

a[i,i]:=max;

a[i,3+1-i]:=max; end;

for i:=1 to 3 do begin

for j:=1 to 3 do write(a[i,j]);

writeln;

end; readln;end.

Задание 24.

Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов:

а) По столбцам;

б) По строкам.

Program P4;

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

i,j,Sh1,Sh2,Sh3,Sd1,Sd2,Sd3:integer;

Begin

for i:=1 to 3 do

for j:=1 to 3 do read(a[i,j]);

for i:=1 to 3 do begin

Sd1:=a[i,1]+Sd1;

Sd2:=a[i,2]+Sd2;

Sd3:=a[i,3]+Sd3; end;

for j:=1 to 3 do begin

Sh1:=a[1,j]+Sh1;

Sh2:=a[2,j]+Sh2;

Sh3:=a[3,j]+Sh3;end;

Writeln('Symma 1-i stroki=',Sh1);

Writeln('Symma 2-i stroki=',Sh2);

Writeln('Symma 3-i stroki=',Sh3);

Writeln('Symma 1-go stolbca=',Sd1);

Writeln('Symma 2-go stolbca=',Sd2);

Writeln('Symma 3-go stolbca=',Sd3); readln; End.

Задание 25.

Организовать двумерный массив (5х5) случайных целых чисел из отрезка [0,60]. Найти минимальный элемент среди элементов, расположенных выше главной диагонали.

ProgramP5;

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

i,j,min:integer;

Begin

randomize;

For i:=1 to 5 do

For j:=1 to 5 do a[i,j]:=random(61);

Writeln('Matrica do obrabotki');

For i:=1 to 5 do begin

For j:=1 to 5 do write(a[i,j]:5); writeln;end;

min:=a[1,5];

For i:=1 to 5 do

For j:=1 to 5 do

if (i<j) and (a[i,j]<min) then min:=a[i,j];

Writeln('Minimym=',min);

Readln;

end.

Организация подпрограмм с помощью функций.

Задание 26.

Написать функцию, которая вычисляет объем цилиндра. Параметрами функции должны быть радиус и высота цилиндра.

Program p1;

Var H,R,O:Real;

function Obem(R,H:real):real;

Begin

Obem:=Pi*Sqr(R)*H;

End;

Begin

Writeln('vvedite R i H');

Readln(R,H);

O:=obem(R,H);

Writeln('Obem=',O:2:2);

Readln;

End.

Задание 27.

Написать фукцию, возвращающую:

а) минимальное среди двух;

б) максимальное среди двух;

Program p2;

Uses crt;

Var a,b:integer;

min,max:integer;

Function maximum(a,b:integer):integer;

Begin

ClrScr;

if a>b then maximum:=a

else maximum:=b;

End;

Function minimum(a,b:integer):integer;

Begin

if a<b then minimum:=a

else minimum:=b;

End;

Begin

Read(a,b);

max:=maximum(a,b);

min:=minimum(a,b);

Write('mininimum=',min);

Write('maximum=',max);End.

Задание 28.

Написать функцию нахождения дискриминанта уравнения и определяющая количество корней (т.е. принимает значения: 0,1, 2).

Program Z3;

var a,b,c:integer;

Function D(a,b,c:integer):integer;

Begin

if Sqr(b)-4*a*c>0 then D:=2;

If Sqr(b)-4*a*c=0 then D:=1;

If Sqr(b)-4*a*c<0 then D:=0;

end;

Begin

Writeln('Vvedite a,b,c');

Readln(a,b,c);

Writeln('Yravnenie imeet' ,D(a,b,c),' kornei' );

Readln;

end.

Задание 29.

Написать функцию нахождения общего сопротивления при параллельном соединении двух проводников.

Rобщ. =

Program Z4;

var R1,R2,rez:real;

function Sopr(R1,R2:real):real;

Begin

Sopr:=1/R1+1/R2;

End;

Begin

Writeln('Vvedite R1 i R2');

Readln(R1,R2);

rez:=Sopr(R1,R2);

Writeln('Soprotivlenie=',Sopr(R1,R2):2:2);

Readln;

End.

Задание 30.

Написать функцию, вычисляющую процент от числа. Параметры- число и процент.

Program Z5;

var N,P,rez:real;

function Procent (N,P:real):real;

Begin

Procent:=(N*P)/100;

End;

begin

Writeln('Vvedite chislo i procent');

Readln(N,P);

rez:=Procent(N,P);

Writeln('Procent=',Procent(N,P):2:2);

Readln;

End.

Вариант-9.

Задание 31.

Даны три стороны треугольника. Написать функцию нахождения площади вписанной в треугольник окружности.

Program z1;

Var o,a,b,c,S,r,p:real;

Function Ploschad(a,b,c:real):real;

var p,s:real;

Begin

p:=(a+b+c)/2;

S:=Sqrt(p*(p-a)*(p-b)*(p-c));

r:=(2*S)/(a+b+c);

ploschad:=Pi*Sqr(r);

End;

Begin

Writeln('vvedite tri storoni treygolnika');

readln(a,b,c);

O:=Ploschad(a,b,c);

Writeln('ploschad ravna=',O:2:2);

Readln;

End.

Задание 32.

Написать функцию нахождения начальной скорости по конечной скорости, по времени изменения скорости, по ускорению.

Program p2;

Var v,v0,t,a:Real;

Function Skorost(v,v0,a:real):real;

Begin

Skorost:=v-a*t;

End;

Begin

Writeln('vvedite konech.skorost, vremya i yskorenie');

Readln(a,t,v);

v0:=Skorost(a,t,v);

Writeln('Nachalnaya skorost ravna=',v0:4:2);

Readln;

End.

Задание 33.

Написать программу, которая вычисляет квадратный корень произведения трех вещественных чисел, введенных с клавиатуры.

Program z3;

Var kor,a,b,c:real;

Function Koren(a,b,c:real):Real;

Begin

Koren:=Sqrt(a*b*c);

End;

Begin

Writeln('vvedite tri chisla');

Readln(a,b,c);

Kor:=Koren(a,b,c);

Writeln('koren chisel raven=',kor:2:2);

Readln;

End.

Задание 34.

Написать функцию, которая вычисляет значение выражения от аргументов a и b. tg(a)+ctg(b).

Program p4;

Var arg,a,b:real;

Function Argymenti(a,b:real):real;

Begin

Argymenti:=sin(a)/cos(a)+cos(b)/sin(b);

End;

Begin

Writeln('vvedite dva chisla');

Readln(a,b);

Arg:=Argymenti(a,b);

Writeln('Znachenie virazheniya ravno=',Arg:2:2);

Readln;

End.

Задание 35.

Написать функцию, определяющую среднее арифметическое среди элементов в массиве.

Program p5;

uses crt;

Var a:array[1..4] of real;

i:integer;

sa:real;

Function Srednee(var a:array of real):real;

Var sum:real;

Begin

For i:=0 to 3 do

Sum:=sum+a[i];

Srednee:=sum/4;

End;

Begin

ClrScr;

Writeln('vvedite massiv');

For i:=1 to 4 do

Readln(a[i]);

sa:=Srednee(a);

Writeln('srednee arifmeticheskoe=',sa:4:2);

Readln;

End.

Организация подпрограмм с помощью процедур.

Задание 36

Даны две точки с координатами (х1, х2), (у1,у2). Найти длину отрезка.

а) без параметра

Procedure dlina;

Var x1,x2,y1,y2:integer;

d:real;

Begin

Writeln('vvedite koordinati');

Write('x1='); readln(x1);

Write('x2='); readln(x2);

Write('y1='); readln(y1);

Write('y2='); readln(y2);

d:=Sqrt(sqr(x1-x2)+sqr(y1-y2));

Writeln('dlina=',d);

End;

Begin

Dlina;

Readln;

End.

б) с параметром

Program p2;

Procedure dlina(x1,x2,y1,y2:integer);

Var d:real;

begin

d:=Sqrt(Sqr(x1-x2)+sqr(y1-y2));

Writeln(dlina=',d:2:2);

end;

begin

Writeln('vvedite koordinati');

Write('x1='); Readln(x1);

Write('x2='); Readln(x2);

Write('y1='); readln(y1);

write('y2='); Readln(y2);

Dlina(x1,x2,y1,y2);

Readln;

End.

Вариант-9

Задание 37.

Найдите x из пропорции .

Programp1;

Var a,b,c:real;

Procedure proporciya(a,b,c:real);

Var x:real;

Begin

x:=((a+b)*(a+c))/(b-c);

Writeln('proporciya=',x:2:2);

End;

Begin

Writeln('vvedite znacheniya a,b,c');

Readln(a,b,c);

Proporciya(a,b,c);

Readln;

End.

Задание 38.

Даны координаты вершин треугольника. Найти его периметр.

Program p6;

Var x1,y1,x2,y2,x3,y3:real;

Procedure Perimetr(x1,y1,x2,y2,x3,y3:real);

Var P,d1,d2,d3:real;

Begin

d1:=Sqrt(sqr(x1-x2)+sqr(y1-y2));

Writeln('dlina1=',d1:2:2);

d2:=Sqrt(sqr(x2-x3)+sqr(y2-y3));

Writeln('dlina2=',d2:2:2);

d3:=Sqrt(sqr(x1-x3)+sqr(y1-y3));

Writeln('dlina3=',d3:2:2);

If (d1+d2>d3) and (d2+d3>d1) and (d1+d3>d2) then

P:=d1+d2+d3 else

Writeln('Takogo treygolnika ne sychestvyet');

Writeln('Perimetr=',P:2:2);

End;

Begin

Writeln('vvedite koordinati');

Write('x1='); Readln(x1);

Write('x2='); Readln(x2);

Write('x3='); Readln(x3);

Write('y1='); Readln(y1);

Write('y2='); Readln(y2);

Write('y3='); Readln(y3);

Perimetr(x1,y1,x2,y2,x3,y3);

Readln;

End.

Задание 39.

Определить среднесуточную температуру, если показания термометра: утром-no C, вечером- ko C, днем- mo C.

Program p3;

Var n,k,m:real;

Procedure Temperatyra(n,k,m:real);

Var sst:real;

Begin

sst:=(n+k+m)/3;

Writeln('Temperatyra=',sst:2:2);

End;

Begin

Writeln('vvedite pokazaniya termometra ytrom,vecherom i dnem');

Readln(n,k,m);

Temperatyra(n,k,m);

readln;

End.

Задание 40.

За какое время пешеход доберется до соседнего города, если его скорость равна V(км/ч), а расстояние- S(км).

Program p2;

Var S,v:real;

Procedure Vremya(s,v:real);

Var t:real;

Begin

t:=s/v;

Writeln('Vremya=',t:2:2);

End;

Begin

Writeln('vvedite skorost i rasstoyanie');

readln(s,v);

Vremya(s,v);

Readln;

End.

Задание 41.

Найти площадь круга S, вписанного в квадрат со стороной a.

Program p5;

Var a:real;

Procedure Ploschad(a:real);

Var s:real;

Begin

S:=pi*sqr(a/2);

Writeln('ploschad=',s:2:2);

End;

Begin

Writeln('vvedite dliny storoni a');

Readln(a);

Ploschad(a); Readln; End.

Задание 42.

Найти значение выражения y= (a+b+c)2 .

Program p4;

Var a,b,c,d:real;

Procedure Virazhenie(a,b,c,d:real);

Var y:real;

Begin

d:=3;

a:=2*d;

b:=3*d;

c:=d/2;

y:=sqr(a+b+c);

Writeln('Virazhenie=',y:2:2);

End;

Begin

Virazhenie(a,b,c,d);

Readln;

End.

Вариант- 5.

Задание 43.

Дан одномерный массив. Найти и вывести на экран значения и номера элементов не превосходящих контрольное число. Оформить процедурой.

Program p2;

Var a:array[1..5] of integer; i,n:integer;

Procedure Massiv(a:array of integer;n:integer);

Var i:integer;

begin

for i:=0 to 5 do

If a[i]<=n then begin

Writeln('a[',i,']=' ,a[i]);

end;end;

Begin

Writeln('vvedite kontrolnoe chislo');

Readln(n);

Writeln('vvedite massiv');

For i:=1 to 5 do

Readln(a[i]);

Massiv(a,n);

Readln;

End.

Задание 44.

Дана функция y=ax3 +bx2 +cx+d. Вывести в виде таблицы значения функции на отрезке [-k,k]. Вычисления оформить функцией y(a,b,c,d,k).

Program p3;

Var a,b,c,d,y:real;

x,k:integer;

Function Tablica(a,b,c,d:real; x:integer):real;

Begin

Tablica:=a*x*x*x+b*sqr(x)+c*x+d;

End;

Begin

Writeln('vvedite znacheniya fynccii');

Readln(a,b,c,d,k);

For x:=-k to k do

begin

y:=Tablica(a,b,c,d,x);

Writeln('y=',y:2:2);

End;

Readln;

End.

Задание 45.

Даны 4 числа a,b,c,d. Найти объемы параллелепипедов на отрезках a,b,c,d. Среди объемов найти наименьший. Вычисление объемов оформить функцией V(a,b,c).

Program p4;

Var v:array[1..4] of integer;

min,i, a,b,c,d,v1,v2,v3,v4:integer;

Function Obem(a,b,c,d:integer):integer;

Begin

obem:=a*b*c;

end;

Begin

Writeln('vvedite znacheniya peremennih');

readln(a,b,c,d);

v[1]:=obem(a,b,c,d);

v[2]:=obem(d,c,b,a);

v[3]:=obem(b,a,d,c);

v[4]:=obem(c,d,a,b);

for i:=1 to 4 do Writeln('obem',i,'parallelepipeda=',v[i]:2);

min:=v[1];

for i:=1 to 4 do

if v[i]<min then

min:=v[i];

writeln('min=',min);

Readln;

End.

Комбинированный тип.

Объявление записи.

Задание 46.

Дан список учащихся из 10 записей. Каждая запись имеет поле фамилия, имя, номер класса, буква.

а) Найти однофамильцев из одного класса;

б) Найти двух учащихся тезок.

Program z;

type ycheniki=record

fam:string[15];

imya:string[10];

class:record

bykva:char;

god:integer;

end;

end;

var spisok:array [1..6] of ycheniki;

i,j:integer;

begin

for i:=1 to 6 do begin

with spisok[i] do begin

writeln('vvedite familiu ychenika',i);

readln(fam);

writeln('vvedite imya',i);

readln(imya);

writeln('vvedite ego klass',i);

readln(class.god);

writeln('vvedite bykvy klassa');

readln(class.bykva);

end;end;

writeln;

writeln('spisok odnofamilcev v odnom klasse:');

for i:=1 to 5 do

for j:=i+1 to 6 do

if (spisok[i].fam=spisok[j]. fam) and

(spisok[i].class.god=spisok[j].class.god)

and (spisok[i].class.bykva=spisok[j].class.bykva)

then writeln(spisok[j].fam, ' ',spisok[i].imya, ' ',

spisok[i].class.god.bykva,' ',

spisok[j].imya, ' ',spisok[j].class.god.bykva);

writeln('Ychashiesya tezki:');

for i:=1 to 5 do

for j:=i+1 to 6 do

if (Spisok[i].fam=spisok[j].fam)and(spisok[i].imya=spisok[j].imya)

then

writeln(spisok[j].fam, ' ', spisok[i].imya, ' ',spisok[i].class.god.bykva,' ',

spisok[j].imya, ' ', spisok[j].class.god.bykva);

writeln('Spisok ychashixsya s odinakovoi bykvoi klassa:');

for i:=1 to 5 do

for j:=i+1 to 6 do

if spisok[i].class.bykva=spisok[j].class.bykva

then

writeln(spisok[i].fam, ' ',spisok[i].imya, ' ',spisok[i].class.god, ' ',

(spisok[j].fam, ' ',spisok[j].imya, ' ',spisok[j].class.god);

readln;

Задание 47.

Написать программу, выдающую сведения об ассортименте игрушек в магазине. Структура записи: название игрушки, цена, количество, возрастные границы.

А)вывести названия игрушек, которые подходят детям до 3 лет;

Б)самая дорогая игрушка;

В)название игрушки, которая по стоимости не превышает х тг и подходит ребенку в возрасте до а лет.

Program Assortiment;

type Igryshki=record

name:string[15];

cena:integer;

kol:integer;

vozr:integer;

end;

var Magazin:array [1..6] of Igryshki;

i,j,max,x,a,b:integer;

Begin

for i:=1 to 6 do begin

with igryshki[i] do begin

writeln('Vvedite nazvanie igryshki',i);

readln(name);

writeln('Cena:');

readln(cena);

writeln('Kolichestvo:');

readln(kol);

writeln('Vozrastnie granici:');

readln(vozr);

end;end;

Writeln;

Writeln('Samaya dorogaya igryshka:');

max:=igryshki[1].cena;

For i:=1 to 6 do

if igryshki[i].cena>max then begin

max:=igryshki[i].cena;

Writeln(igryshki[i].name, ' ', max); end;

Writeln('Igryshki dlya detei v vozraste 3 let:');

For i:=1 to 6 do

if igryshki[i].vozr=3 then begin

Writeln(igryshki[i].name, ' stoimostu ',igryshki[i].cena, 'tg'); end;

writeln('vvedite stoimost');

readln(x);

For i:=1 to 6 do

if (igryshki[i].cena<x) then begin

writeln('Igryshki ' ,igryshki[i].name, 'stoimostu ' ,igryshki[i].cena,' ne previshaut ',x,' tg' ); end;

writeln('vvedite vozrast ');

readln(a);

For i:=1 to 6 do

if igryshki[i].vozr=a then begin

writeln(igryshki[i].name , 'podxodyat dlya vozrasta' , igryshki[i].vozr); end;

readln;

end.

Задание 48.

Список книг состоит из 10 записей:

Поля: Фамилия автора;

Название книги;

Год издания;

Количество страниц;

а) Найти название книг данного автора, изданных с 1960 года.

б) Определить имеются ли книги с названием «Информатика», если да, то сообщить фамилию авторов, год издания и количество страниц.

в) Вывести название книг и их авторов, если количество страниц превосходит среднее количество страниц по всему списку.

PROGRAM P1;

Type knigi=record

fam:string;

name:string;

page:integer;

god:integer;

End;

Var Spisok:array[1..5] of knigi;

i,o,summa:integer; m:string;

Sr:real;

Begin

For i:=1 to 5 do

Begin

With Spisok[i] do

Begin

Writeln('Vvedite familiu avtora', i);

Readln(fam);

Writeln('Vvedite nazvanie knigi', i);

Readln(name);

Writeln('vvedite god izdaniya');

Readln(god);

Writeln('Vvedite kolichestvo stranic');

Readln(page);

End;

End;

Writeln;

Writeln('Spisok knig izdannih s 1960 goda');

Writeln('Vvedite imya avtora');

Readln(m);

For i:=1 to 5 do

If (m=spisok[i].fam) and (spisok[i].god>=1960) then

Writeln(spisok[i].fam,' ',spisok[i].name,' ',spisok[i].god);

Writeln('Imeutsya li knigi s nazvaniem "Informatika"?');

For i:=1 to 5 do

begin

If spisok[i].name='Informatika' then

Writeln(Spisok[i].fam,' ',spisok[i].god,' ',spisok[i].page); o:=o+1 end;

if o=0 then Writeln('Takih knig net');

Summa:=0;

For i:=1 to 5 do

Summa:=Summa+Spisok[i].page;

Sr:=Summa/5;

Writeln('Srednee kolichestvo stranic=',Sr:2:2);

For i:=1 to 5 do

If Spisok[i].page>Sr THEN

Writeln('Stranici prevoshodyawie srednee kolichestvo stranic po spisky ',Spisok[i].fam,' ',Spisok[i].name);

Readln;

End.

Файловая переменная.

Типизированные файлы.

Задание 49.

а) Организовать файл CHISLA.dat с целыми числами.

Program p1;

Var f:file of integer;

n,i,c:integer;

Begin

Writeln('sozdat fail iz celih chisel');

Assign (f,'c:\ucheba\CHISLA.dat');

Rewrite(f);

Readln(n);

For i:=1 to n do

Begin

Read(c);

Write(f,c);

End;

End.

б) Составить программу, подсчитывающую количество элементов в файле, их сумму, среднее арифметическое.

program p3;

var

f:file of integer;

i,n,s:integer;

elem,k:integer; sum:integer;sa:real;

begin

assign(f,'c:\ucheba\kolichestvo.txt');

reset(f);

sum:=0; k:=0;

while not eof (f) do

begin

read(f,elem); k:=k+1;

sum:=sum+elem;

end;

writeln('summa elementov=',sum);

sa:=sum/k;

writeln('sa=',sa:4:2);

readln;

end.

Вариант 4в.

Задание 50.

Организовать символьный файл f из Nкомпонент. После этого организовать файл g, содержащий все компоненты файла f в обратном порядке. Вывести содержимое файлов на экран.

Program p1;

Var f,g:file of char;

n,i:integer;

c:char;

a:array[1..10] of char;

Begin

Assign(f,'c:\ucheba\Simvoli.txt');

Rewrite(f);

Writeln('Vvedite kolichestvo komponent ');

Readln(n); writeln;

writeln('vvedite komponenti');

For i:=1 to n do

Begin

Readln(c);

Write(f,c);

End;

Close(f);

Reset(f);

Assign(g,'c:\ucheba\Simvol_.txt');

Rewrite(g);

i:=1;

While not eof (f) do

Begin

read(f,c);

a[i]:=c;

i:=i+1;

end;

for i:=n downto 1 do

Write(g,a[i]);

Close(f);

Close(g);

Reset(g);

Writeln('simvoli faila g');

While not eof(g) do

Begin

Read(g,c);

Writeln(c,' ');

End;

Close(g);

Readln;End.

Задание 51.

Организовать файл символов из N компонент. Определить символ, встречающийся в файле наиболее часто. Вывести на экр ан этот символ и его количество в файле.

Program z3;

var f:file of char;

i,n,k,j,max:integer;

c:char;

a:array [1..100] of char;

s:array [1..100] of integer;

Begin

writeln('Sozdat fail iz simvolov');

assign(f,'c:\docume~1\3193~1\0016~1\ucheba\baza4.txt');

rewrite(f);

writeln('vvesti kolichestvo komponentov');

readln(n);

for i:=1 to n do

begin

readln(c);

write(f,c);

end;

close(f);

reset(f);

i:=1;

while not eof(f) do

begin

read(f,c);

a[i]:=c;

i:=i+1;

end;

for k:=1 to i do S[k]:=1;

for k:=1 to i do

for j:=k+1 to i do

if a[k]=a[j] then s[k]:=s[k]+1;

max:=s[1];

n:=1;

for k:=1 to i do

if max<s[k] then begin

max:=s[k];n:=k;end;

for k:=1 to i do

if s[k]=max then

writeln('simvol ', a[n],' vstrechaetsya ',n,' raz');

readln;end

.

Задание 52.

Напишите программу организующую хранение в файле нескольких записей (до 10) о результатах экзамена. Каждая запись содержит 3 поля: номер записи, фамилия, оценка. Организуйте вывод всей информации по форме: {1 Иванов 3}

Program Z1;

type ekzamen=record

n:integer;

fam:string [15];

oc:integer;

end;

var baza1:file of ekzamen;

rez:array [1..10] of ekzamen;

i:integer; y:integer;f:string[100];

begin

write('vvedite chislo ychenikov');readln(y);

f:='c:\docume~1\3193~1\0016~1\ucheba\baza1.txt';assign(baza1,f);rewrite(baza1);

for i:=1 to 10 do begin

with rez[i] do begin

Writeln('Familiya');

readln(fam);

Writeln('Ocenka');

readln(oc);

end;end;

writeln;

reset(baza1);

Writeln('Rezyltati ekzamena:');

for i:=1 to 10 do

Writeln(i,' ', rez[i].fam, ' ', rez[i].oc);

Readln;end.

Текстовые файлы.

Задание 53

Организовать файл из Nстрок (текстовый) text.txt.

Program p1;

Uses Crt;

Var f:text;

i,n:integer;

c:string;

Begin

ClrScr;

Writeln('sozdanie tekstovogo faila ');

Writeln('vvedite kolichestvi strok');

Readln(n);

Assign(f,'c:\ucheba\text.txt');

Rewrite(f);

For i:=1 to n do

Begin

Readln(c);

Writeln(f,c);

End;

Close(f);

Readln;

End.

Задание 54

Подсчитать среднюю длину строк из файла text.txt.

Program p2;

Uses crt;

Var f:text;

i,n,d:integer;

c:string;

Sa:real;

Begin

ClrScr;

Writeln('Nahozhdenie srednej dlini stroki');

Writeln;

Assign(f,'c:\ucheba\text.txt');

Reset(f);

d:=0;

While not eof(f) do

begin

Readln(f,c);

n:=n+1;

d:=d+length(c);

End;

Sa:=d/n;

Writeln('srednee arifmeticheskoe=',sa:4:2);

Repeat Until Keypressed;

End.

Задание 55

Удалить из текстового файла все пробелы(delete (St, n, 1).

St - строка, n- позиция, 1-количество удаляемых символов.

Program p3;

Var f:text;

i,n:integer;

c:string;

Begin

Assign(f,'c:\ucheba\text.txt');

Reset(f);

While not eof(f) do

Begin

Readln(f,c);

for i:=1 to length(c) do

if c[i]=' ' then delete(c,i,1);

Writeln('Vivod faila bez probelov:',c);

End;

Readln;

End.

Задание 56

В текстовом файле text.txt определить максимальную длину строки.

Program p2;

Uses crt;

Var f:text;

i,n,max:integer;

c:string;

a:array[1..100] of integer;

Begin

ClrScr;

Assign(f,'c:\ucheba\text.txt');

Reset(f);

i:=1;

While not eof(f) do

Begin

Readln(f,c);

a[i]:=length(c);

i:=i+1;

End;

n:=i;

max:=a[1];

for i:=1 to n do

Begin

If a[i]>max then max:=a[i]; end;

Writeln('maksimalnaya dlina stroki=',max);

End.

Задание 57

Строки из файла text.txt разбить на части нечетные по счету строки. Записать в файл text.txt, четные- в text2.txt

Programp5;

Uses crt;

var f,g,h:text;

c:string;

i,n:integer;

Begin

ClrScr;

Writeln('Sortirovka strok faila na chetnie i nechetnie');

Writeln;

Assign(f,'c:\ucheba\text.txt');

Reset(f);

Assign(g,'c:\ucheba\text1.txt');

Rewrite(g);

Assign(h,'c:\ucheba\text2.txt');

Rewrite(h);

i:=0;

While not eof(f) do

Begin

Readln(f,c);

i:=i+1;

If(i mod 2)=0 then

Writeln(g,c) else

Writeln(h,c);

End;

Close(h); Close(g); End.