Смекни!
smekni.com

Одномерные массивы. Организация ввода и вывода данных (стр. 1 из 3)

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

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

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

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

Группа Г-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;