
Задания на 0-10 баллов
1. Сконструируйте программу для формирования массива В состоящего из четных элементов массива А. Элементы массива вводятся с клавиатуры. Размер массива n.
Решение:
Program newmasiv;
uses crt;
Var a: array[1..100] of integer;
b: array[1..100] of integer;
n, i, k, kol: integer;
Begin
clrscr;
kol:=0; k:=0;
write('n='); readln (n);
For i:=1 to n do
begin
write('a[',i,']='); readln (a[i]);
if a[i] mod 2=0 then
begin
k:=k+1; b[k]:=a[i]; kol:=kol+1;
end;
if kol=0 then writeln('Четных элементов нет') else
for k:=1 to kol do
writeln('b[',k,']=',b[k]);
readln;
end;end.
2. Сконструируйте программу для нахождения суммы максимальных элементов массивов a[1..10] и b[1..10], используя процедуру для определения максимального элемента массива.
Решение:
Program proizv;
uses crt;
Type massiv=array[1..10] of integer;
Var a, b:massiv;
m1, m2,i:integer;
Procedure min (x:massiv; var m:integer);
Begin
m:=1;
for i:=1 to 10 do
if x[i]>m then m:=x[i];
end;
begin
clrscr;
write('Введите элементы массива a:');
for i:=1 to 10 do
readln(a[i]);
write('Введите элементы массива b:');
for i:=1 to 10 do
readln(b[i]);
min(a, m1);
min(b, m2);
write('Symma max elementov=', m1+m2);
readln; end.
3. Сконструируйте программу для подсчета количества положительных элементов в каждой строке матрицы размером M*N, элементы которой вводятся с клавиатуры.
Решение:
program kolpolvstr;
uses crt;
Var a: array[1..50,1..50] of integer;
i, j, m, n, kol: integer;
Begin
clrscr;
Write('Сколько строк?'); Readln(m);
Write('Сколько столбцов'); Readln(n);
For i:=1 to m do
begin
For j:=1 to n do
begin
write('a[',i,',',j,']=');
readln (a[i,j]); end;end;
for i:=1 to m do
begin
kol:=0;
for j:=1 to n do
if a[i,j]>0 then kol:=kol+1;
writeln('количество положительных элементов в ',i,'строке: ',kol);
end;
writeln; readln;
end.
4. Сконструируйте программу для подсчета количества способов выбора четырех из десяти учащихся для участия в конкурсе.
Решение:
Program socetanie;
Var n:integer; c:longint;
Function fact (a:integer):longint;
Begin
If a=0 then fact:=1
Else fact:=a*fact(a-1);
End;
Begin
C:=fact(10)/(fact(4)*fact(6));
Writeln('Количество способов=', C);
readln;
end.
5. Сконструируйте программу, которая на диске компьютера (c:) создаст файл numbers.txt и запишет в него 5 введенных пользователем целых чисел. Просмотрите при помощи редактора текста созданный файл. Убедитесь, что каждое число находится в отдельной строке.
Решение:
Program primer;
var
f: text;
n: integer;
i: integer;
begin
writeln('Создание файла ');
writeln('Введите пять целых чисел');
writeln('После ввода каждого числа нажимайте <Enter>');
Assign(f,'c:\numbers.txt');
Rewrite(f);
for i:=1 to 5 do
begin
write('->');
readln(n);
writeln(f,n);
end;
close(f);
writeln('Введенные числа записаны в файл','c:\numbers.txt');
readln; end.
6. Сконструируйте программу для вычисления факториала. При создании программы используйте функцию.
Решение:
Program primer;
Var n:integer;
Function fact(i:integer):longint;
Begin
If i=0 then fact:=1
Else fact:=i*fact(i-1);
End;
begin
write('Введите число n:'); readln(n);
writeln('Факториал n! = ', fact(n)); readln;
end.
7. Сконструируйте программу для определения минимального элемента двумерной матрицы. Используйте две процедуры: первая для формирования матрицы, вторая для нахождения минимального элемента.
Решение:
Program Ex;
uses crt;
type
mas=array[1..4,1..4] of integer;
var tab:mas;
min,i,j:integer;
Procedure Vvodmt(var m:mas);
begin
clrscr;
for i:=1 to 4 do
for j:=1 to 4 do
begin
write ('Vvedite elementi massiva',i,' ',j, ' ');
readln(m[i,j]); end; end;
Procedure Tmtab (m:mas; var rez:integer);
var i, j:byte;
begin
rez:=m[1,1];
for i:=1 to 4 do
for j:=1 to 4 do
if m[i,j]<rez then
rez:=m[i,j]; end;
begin
Vvodmt(tab);
Tmtab(tab,min);
writeln('min=',min);
repeat until keypressed;
end.
8. Сконструируйте программу, в которой функция вычисляет площадь цилиндра по задаваемым параметрам диаметра основания D и его высоты H.
Решение:
Program SC;
var a1,a2,a3:real;
Function Sqr_Cil(D,H:real):real;
var z1,z2:real;
begin
z1:=2*(Pi*D/4);
z2:=Pi*D*H;
Sqr_Cil:=z1+z2;
end;
begin
Readln(a1,a2);
a3:=Sqr_Cil(a1,a2);
Writeln(‘диаметр=’,a1:5:2,’ высота=‘,a2:5:2,
’площадь=‘,a3:7:3);
end.
9. Опишите запись Student, в которой хранятся данные об учениках разных классов: № школы, фамилия, класс. Выведите список учеников, которые учатся в восьмом классе. Количество учащихся задавать программно.
Решение:
Program LipovsevM;
Uses Crt;
Type
Uchenik=record
Shkola : integer;
Fam : string[15];
Klass : integer;
end;
Var
I,n,a,j : integer;
Massiv : array[1..100] of Uchenik;
Procedure Poisk;
Begin
for i:=1 to n do
if massiv[i].klass=8
then
with massiv[i] do
writeln(Shkola:4,' ',Fam:15,' ',klass);
End;
Begin
ClrScr;
writeln('Введите число учеников ');
write('->');
read(n);
for i:=1 to n do
begin
writeln('Введите через пробел номер школы и фамилию ученика ');
write('->');
with massiv[i] do
begin
readln(Shkola,Fam);
write('введите класс ученика (только число) ->');
read(Klass);
end;
end;
writeln('Ученики 8-ых классов:');
writeln('Школа Фамилия Класс');
writeln('---------------------------------');
Poisk;
ReadKey;
End.
10. Сконструируйте программу для формирования одномерного массива B, элементы которого заданы датчиком случайных чисел на интервале [-19, 26] (размер произвольный). Найдите произведение элементов с нечетными номерами.
Решение:
Program proisvednechet;