Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика_всем

.pdf
Скачиваний:
76
Добавлен:
03.03.2016
Размер:
5.42 Mб
Скачать

Л и с т и н г п р о г р а м м ы н а 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

AN M

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