Колледж Экономики и информационных технологий
Отчет по учебной практике
Дисциплина: Основы алгоритмизации.
Выполнила: Гавриляченко Н.
Группа Г-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;