Лабораторная работа № 4. Одномерные массивы
Задание 1. В алгоритме вычисления суммы и количества положительных элементов заполните пустые места.
Рис. 2. Одномерный массив
Задание 2. Составьте блок-схему к следующей программе:
Program Example7;
Uses crt;
Var a: array[1..100] of integer;
i, n, max: integer;
Begin
Clrscr;
Write('n=');
Readln(n);
for i:=1 to n do Begin
Write('a[',i,']=');
Readln(a[i]);
End;
max:=a[1];
for i:=2 to n do if a[i]>max then max:=a[i];
Writeln('max=',max);
End.
Задание 3. Составьте программу, которая находит максимальный и минимальный элементы в одномерном массиве и их порядковые номера.
const n = 10;
var
a:array[1..n]of integer;
i,max,min,e,y:integer;
begin
randomize;
for i:=1 to n do
a[i]:=random(101)+1;
for i:=1 to n do
write(a[i],' ');
writeln;
max:=a[1]; min:=a[1];
for i:=1 to n do begin
if a[i]>max then begin max:=a[i]; e:=i;end;
if a[i]<min then begin min:=a[i]; y:=i;end;
end;
writeln('Элемент №',e,' - максимальный, он равен = ',max);
writeln('Элемент №',y,' - минимальный, он равен = ',min);
end.
Задание 4. Составьте программу, в которой меняются местами максимальный и минимальный элементы.
program primer4;
var
A: array[1..10] of integer;
i,p,m,m1,p1: integer;
begin
randomize;
p:=1;
for i := 1 to 10 do
begin
A[i] := random(100)-50;
write (a[i]:3);
if a[i]>p then
begin
p:=A[i];
m:=i;
end;
if a[i]<p1 then
begin
p1:=A[i];
m1:=i;
end;
end;
writeln;
A[m]:=p1;
A[m1]:=p;
for i := 1 to 10 do
write (a[i]:3);
readln;
end.
Задание 5. Установите правильный порядок команд в программе, и определите, что в ней вычисляется.
Program Example8;
Uses crt;
Var a, b:array[1..100] of integer;
i, n, k: integer;
Begin
Write('n=');
Readln(n);
k:= 0;
for i:= 1 to n do Begin
Write('a[', i, ']=');
Readln(a[i]);
End;
for i:=1 to n do
if a[i] < 0 then Begin
k:= k+1;
b[k]:= i;
End;
for i:= 1 to k do Write(b[i]:4);
Readkey
End.
Кол-во отрицательных элементов и их индексы заносятся в новый массив.
Задание 6. Определите, что выполняется в программе.
Program Example9;
Uses crt;
Var a: array[1..100] of integer;
i, j, n, m:integer;
Begin
Clrscr;
Write('n='); Readln(n);
for i:= 1 to n do Begin
Write('a[', i, ']=');
Readln(a[i]);
End;
for j:= 1 to n-1 do
for i:= 1 to n-j do Begin
if a[i] < a[i+1] then Begin
m:= a[i];
a[i]:= a[i+1];
a[i+1]:= m;
End;
End;
for i:= 1 to n do Write(a[i]:5);
End.
Вывод одномерного массива в порядке убывания значений его элементов.
Задание 7. Составить программу, которая преобразует одномерный массив таким образом, чтобы сначала шли отрицательные, затем нулевые и положительные элементы.
Program primer7;
Var a: array[1..100] of integer;
i, n:integer;
Begin
Write('n=');
Readln(n);
for i:= 1 to n do Begin
Write('a[',i,']=');
Readln(a[i]);
End;
for i:= 1 to n do begin
if a[i] < 0 then write(' ',a[i]);
end;
for i:= 1 to n do begin
if a[i] = 0 then write(' ',a[i]);
end;
for i:= 1 to n do begin
if a[i] > 0 then write(' ',a[i]);
end;
readln;
End.
Лабораторная работа № 8. Файлы
Задание 1. Определите, что выполняется в программе. В фигурных скобках укажите назначение команд.
Program Example15;
Uses crt;
Var f: text;
st: string;
Begin
Assign(f, 'C:\Example.txt'); {устанавливает связь между переменной и физическим файлом на диске}
Rewrite(f);{запись в файл}
Writeln('Введите текст ');
Read(st);
Write(f, st);{ запись в файл f строку st }
Close(f); { закрыть файл }
End.
Задание 2. Определите, что выполняется в программе и для чего предназначена командаAppend?
Program Example16;
Uses crt;
Var f: text;
i, n, x: integer;
Begin
Assign(f, 'C:\Example.txt');
Append(f);{открыть файл и добавить в конец}
Writeln('Введите количество чисел');
Readln(n);
Writeln('Введите числа');
for i:= 1 to n do Begin
Readln(x);
Write(f, x:4);
End;
Close(f);
End.
Задание 3. Определите, что выполняется в программе. В фигурных скобках запишите назначение команд.
Program Example17;
Uses crt;
Var f: text;
st: string;
Begin
Clrscr;
Assign(f, 'C:\Example.txt');
Reset(f);{открыть файл для чтения}
While not EOF(f) do { пока не конец файла f }
Begin
Readln(f, st);{читать строку из файла f}
Writeln(st);{вывод строки на экран }
End;
Close(f);
Readln
End.
Задание 4. Разработайте программу, которая создает файлdate.txtи записывает в негоnслучайных чисел в диапазоне от 5 до 30.
Program zadanie;
Var f: text;
n,i:integer;
a:array[1..100] of integer;
Begin
Assign(f, 'C:\PABCWork.NET\date.txt');
Rewrite(f);
write('введите n= ');
readln(n);
for i:= 1 to n do
begin a[i]:= 5+random(25);
Writeln(f, a[i]);
end;
Close(f);
end.
Задание 5. Разработайте программу, которая считывает информацию из файлаdate.txt, находит максимальное число и общую сумму. Результат запишите в файлresult.txt.
Program program;
Uses CRT;
Var f,z: Text;
a,max,S: integer;
Begin
CLRSCR;
Assign(f, 'C:\PABCWork.NET\date.txt');
Reset(f);
Assign(z,' C:\PABCWork.NET\result.txt');
Rewrite(z);
max:=a;
Close(f);
Assign(f, 'C:\PABCWork.NET\date.txt');
Reset(f);
While not eof(f) do
Begin
ReadLn(f,a);
if a>max then max:=a;
Inc(S,a);
End;
Write(z,'Сумма: ',S,' Максимальное число: ',max);
WriteLn('Сумма: ',S,' Максимальное число: ',max);
Close(f);
Close(z);
ReadLn;
End.