Информатика_всем
.pdfЛ и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 1 0
program Z10;
var A:array[1..9] of integer; i,k, S:integer; SrA:real;
begin
writeLn('Вводим элементы массива A:'); for i:=1 to 9 do
begin write('A[',i,']='); readLn(A[i]);
end; S:=0; k:=0;
for i:=1 to 9 do
if A[i] mod 2 = 0 then begin
S:=S+A[i];
k:=k+1;
end;
SrA:=S/k;
writeLn('среднее арифметическое = ',SrA:8:2); end.
11. МОДИФИКАЦИЯ ОДНОМЕРНЫХ МАССИВОВ
Ввести одномерный массив A, состоящий из N элементов. Каждый
второй элемент увеличить в 10 раз. Массив вывести до изменения и после.
29
Б л о к - с х е м а к з а д а ч е № 1 1
1
Начало
i := 1, N
Ввод N
i mod 2 = 0 i := 1 , N
A[ i ] := A[ i ]*10
Ввод A[i]
i := 1 , N
i := 1 , N
Вывод A[i]
Вывод A[i]
1
Конец
Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 1 1 program Z11;
const Nmass=100;
var A:array[1..Nmass] of integer; i,N: byte;
begin
writeLn('Введите число элементов в массиве A'); readLn(N);
writeLn('Вводим элементы массива A:'); for i:=1 to N do
begin write('A[',i,']='); readLn(A[i]);
end;
writeLn('Исходный массив A:'); for i:=1 to N do
30
write(A[i]:5);
writeLn;
// модификация массива for i:=1 to N do
if i mod 2 = 0 then A[i]:=A[i]*10;
writeLn;
writeLn('массив A после изменения:'); for i:=1 to N do
write(A[i]:5);
end.
12. РАСЧЕТЫ В ДВУМЕРНЫХ МАССИВАХ
Ввести двумерный массив A3 4 . Определить среднее геометрическое положительных четных элементов, считая, что они в нем есть.
Б л о к - с х е м а к з а д а ч е № 1 2
1
i := 1 , 3
Начало
j := 1 , 4
i := 1 , 3
(A[ i, j ] mod 2 = 0) and (A[ i, j ]>0)
j := 1 , 4
p := p*A[i,j]
Ввод A[i, j]
k := k + 1
k := 0
Srg : k p
p := 1
Вывод
1 |
k, p, SrG |
|
|
|
Конец |
31
Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 1 2
program Z12;
var A:array[1..3,1..4] of integer; i,j,k: byte;
P,SrG:real; begin
cls;
//ручной ввод массива
writeLn('Вводим элементы массива A:'); for i:=1 to 3 do
for j:=1 to 4 do begin
write('A[',i,',',j,']=');
readLn(A[i,j]);
end;
k:=0;
P:=1;
for i:=1 to 3 do for j:=1 to 4 do
if (A[i,j] mod 2=0) and (A[i,j]>0) then begin
p:=p*A[i,j];
k:=k+1;
end;
//вычисление среднего геометрического как корня
//k-й степени из произведения P, составленного
//из k сомножителей
SrG := exp((1/k)*ln(p));
writeLn('всего четных элементов ', k);
32
writeLn('их произведение ', p);
writeLn('среднее геометрическое ', SrG:8:2);
end.
13. МОДИФИКАЦИЯ ДВУМЕРНЫХ МАССИВОВ
Ввести двумерный массив . Каждый положительный элемент
увеличить на произведение индексов этого элемента. Массив вывести до и после изменения.
Б л о к - с х е м а к з а д а ч е № 1 3 |
|
|
1 |
Начало |
|
|
i := 1 , N |
Ввод N, M |
|
|
j := 1 , M |
i := 1 , N |
|
|
A[ i, j ]>0 |
j := 1 , M |
|
A[ i, j ] := A[ i, j ]*i*j |
|
Ввод A[i, j] |
|
i := 1 , N |
i := 1 , N |
j := 1 , M |
j := 1 , M |
Вывод A[i, j] |
Вывод A[i, j] |
Перевод |
Перевод |
строки |
строки |
1 |
Конец |
|
33
Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 1 3
program Z13; const Nmass=10;
var A:array[1..Nmass,1..Nmass] of integer; N,M,i,j: byte;
begin cls;
writeLn('Введите число элементов в массиве A'); readLn(N,M);
writeLn('Вводим элементы массива A:'); for i:=1 to N do
for j:=1 to M do begin
write('A[',i,',',j,']=');
readLn(A[i,j]);
end;
writeLn('Исходный массив A:'); for i:=1 to N do
begin
for j:=1 to M do write(A[i,j]:5);
writeLn;
end;
for i:=1 to N do for j:=1 to M do
if A[i,j]>0 then A[i,j]:=A[i,j]*i*j;
writeLn;
writeLn('массив A после изменения:'); for i:=1 to N do
begin
for j:=1 to M do write(A[i,j]:5);
34
writeLn;
end;
end.
14. РАСЧЕТЫ В ФАЙЛАХ
Ввести файл F целых чисел, состоящий из девяти элементов. Опре-
делить среднее арифметическое четных элементов.
Б л о к - с х е м а к з а д а ч е № 1 4 |
|
|
|
1 |
|
Начало |
|
|
Assign(F, ‘F.dat’) |
|
|
|
not EOF(F) |
|
Rewrite(F) |
|
|
|
b←F |
|
i := 1 , 9 |
|
|
|
b mod 2 = 0 |
|
F←b |
|
|
s:=s+b |
|
|
Ввод b (i-я |
|
|
компонента файла) |
|
|
k:=k+1 |
|
|
S:=0 |
|
|
k:=0 |
k > 0 |
|
|
||
SrA:=S/k |
'в файле нет четных |
|
reset(F) |
||
элементов' |
||
|
||
Вывод SrA |
|
|
1 |
|
close(f)
Конец
35
Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 1 4
program Z14;
var b,S,k,i:integer; f:file of integer; SrA:real;
begin assign(f,'f.dat'); rewrite(f);
writeLn('вводите 9 компонент файла f:'); for i:=1 to 9 do
begin
writeLn('введите ',i,'-ую компоненту файла
f');
readLn(b);
write(f,b);
end;
reset(f);
S:=0;
k:=0;
while not EOF(f) do begin
read(f,b);
if b mod 2 = 0 then begin
S:=S+b;
K:=k+1;
end;
end;
if k>0 then begin
SrA:=S/k;
36
writeLn('среднее арифметическое четных
=',SrA:8:2) end
else
writeLn('в файле нет четных элементов'); close(f);
end.
15. МОДИФИКАЦИЯ ФАЙЛОВ
Ввести файл F. В файле элементы, большие четырех, стоящие на по-
зициях, некратных трем, увеличить на 5. Файл вывести до и после пре-
образования.
Б л о к - с х е м а к з а д а ч е № 1 5
Начало |
Assign(F, ‘F.dat’) |
Rewrite(F) |
Ввод b (1-я |
компонента файла) |
i:=1 |
b ≠ 555 |
F←b |
i:= i + 1 |
Ввод b (i-я |
компонента файла) |
1 |
1 |
reset(F) |
Not EOF(F) |
b←F |
Вывод b |
reset(F) |
1 |
стр. 39 |
37
1 |
|
|
стр. 39 |
1 |
|
|
reset(F) |
|
not EOF(F) |
|
|
b←F |
Not EOF(F) |
|
|
||
(b>4) |
b←F |
|
and ((filepos(f)-1) mod 3 <> 0) |
||
|
||
seek(f,filepos(f)-1) |
Вывод b |
|
b:=b+5 |
|
|
|
Конец |
|
F←b |
|
|
1 |
|
|
Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 1 5 |
program Z15; var b,i:integer;
f:file of integer; begin
assign(f,'f.dat');
writeLn('введите первую компоненту файла f или ризнак конца ввода: "555")');
//ввод файла rewrite(f); readLn(b);
i:=1; //номер компоненты файла while b<>555 do
begin write(f,b); i:=i+1;
writeLn('введите ',i,'-ю компоненту файла f'); readLn(b);
38