Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разборка задач №1-10.doc
Скачиваний:
5
Добавлен:
26.09.2019
Размер:
208.38 Кб
Скачать

12. Конец.

Текст программы

Program exp7;

Uses crt ;

Var a : array [ 1..12, 1..9 ] of real ;

i, j, n, m,k : integer;

Sum, P : real ;

begin

clrscr ;

(* ввод элементов массива *)

write ( ‘Введите количество строк : ‘ ) ; readln (n ) ;

write ( ‘Введите количество столбцов : ‘ ) ; readln (m );

write ( ‘Введите массив : ‘ ) ;

for i := 1 to n do begin

for j:= 1 to m do

begin

write ( ‘ A ( ‘, i , ‘,’, j ,’ ) = ‘ ) ; readlln ( a [ i, j ] ) ;

end ;

(* Подготовка цикла, присвоение переменным начальных значений *)

K:=0;

Sum:=0;

P:=1;

(* Цикл обработки матрицы *)

for i := 1 to n do

for j : =1 to m do

if a [ i, j ] >0 then

begin

k : = k+1 ;

Sum : = Sum+a [ i, j ] ;

P : = P*a [ i,1] ;

end ;

(* Вывод результатов *)

writeln ; writeln ( ‘ Результат: ‘ ) ;

writeln ;

writeln ( ‘ Исходная матрица: ‘ ) ;

for i := 1 to n do

begin

for j:= 1 to m do

write ( a [ i, j ]:7:2 ) ;

writeln;

end ;

writeln;

writeln ( ‘Количество положительных элементов: ‘ , К:2) ;

writeln ( ‘Сумма положительных элементов: ‘ , Sum:7:2) ;

writeln ( ‘Произведение положительных элементов: ‘ , Р:8:2) ;

ReadKey;

end.

Результат

Введите количество строк : 3

Введите количество столбцов : 4

Введите массив :

A ( 1, 1) = -1

A ( 1, 2) = 2

A ( 1, 3) = -3

A ( 2, 1) = 2

A ([ 2, 2) = -1

A ( 2, 3) = -3

A ( 3, 1) = 3

A ( 3, 2) = -2

A ( 3, 3) = 1

A ( 4, 1) = -3

A ( 4, 2) = 2

A ( 4, 3) = -2

Answer

-1.00 2.00 -3.00

2.00 -1.00 -3.00

3.00 -2.00 1.00

-3.00 2.00 -2.00

Количество положительных элементов: 5

Сумма положительных элементов: 10.00

Произведение положительных элементов: 24.00

Задача5

Дан массив A(N,N) вещественных чисел. Прибавить к каждому элементу данной строки элемент, принадлежащий этой строке и главной диагонали.

Назначение переменных

А - имя двумерного массива (матрицы)

n - количество строк и столбцов обрабатываемого массива

i,j - переменные для хранения текущего значения строки и столбца в организованном для обработки матрицы циклическом процессе

g - элемент массива A, принадлежащий главной диагонали

Описание алгоритма

  1. Начало

  2. Ввод с клавиатуры значение переменной n.

3,4,5. Цикл, обеспечивающий ввод элементов двумерного массива.

6. Цикл, обеспечивающий обращение к элементам двумерного массива по строкам.

7. Переменной g присваивается значение элемента диагонали массива

8. Цикл, обеспечивающий обращение к элементам двумерного массива по столбцам.

9. К каждому элементу прибавляется элемент диагонали.

10. Вывод элементов нового массива.

11. Конец.

Текст программы

Program exp5;

Uses crt ;

Var a : array [ 1..10, 1..10 ] of real ;

i, j, n: integer;

g: real ;

begin

clrscr ;

(* ввод (построчный) элементов массива *)

writeln ( ‘Укажите размер массива : ‘ ) ; readln (n ) ;

write ( ‘Введите массив : ‘ ) ;

for i := 1 to n do

begin

for j:= 1 to n do

begin

write ( ‘ A ( ‘, i , ‘,’, j ,’ ) = ‘ ) ; readln ( a [ i, j ] ) ;

end ;

end ;

(* Цикл обработки матрицы *)

for i := 1 to n do

begin

g : = a [ i, i ];

for j : =1 to n do

a [ i, j ]: = a [ i, j ] + g;

end ;

(* Вывод (построчный) результатов *)

writeln ; writeln ( ‘ Результат: ‘ ) ;

writeln ;

writeln ( ‘ Новый массив: ‘ ) ;

for i := 1 to n do

begin

for j:= 1 to n do

write ( a [ i, j ]:7:2 ) ;

writeln;

end ;

ReadKey;

end.

Задача 6

Составьте программу, подсчитывающую сколько различных элементов встречаются в целочисленном массиве А(N). Повторяющиеся числа учитывайте один раз.

Назначение переменных

А - имя одномерного массива

С –имя массива, содержащий неповторяющиеся элементы массива А

n - количество элементов обрабатываемого массива А

р – количество элементов массива С (число различных элементов массива А)

i - переменная, используемая в цикле for для организации обращений к элементам массива А

j - переменная, используемая в цикле for для организации обращений к элементам массива А

fl – переменная, имеющая только два значения: 0 или1.

Текст программы

Program zadacha6;

Uses crt ;

Var A,C: array[1..20] of real;

n,p,i,j:integer;

Begin

clrscr;

write(‘Введите количество элементов массива: ’);

readln(N);

writeln(‘Введите элементы массива:);

For i:=1 to N do

Begin

Write(A(‘,i,’): ’);

Readln(a[i]);

End;

p:=1;

c[1]:=a[1];

{выясним, принадлежит ли i-ый элемент массива А массиву С}

For i:=2 to n do

Begin

fl:=0;

for j:=1 to p do

if a[i]=c[j] then fl:=1;

{если i-ый элемент массива А не входит в массив С, то он дописывается в массив С}

if fl:=0 then

begin

p:=p+1;

c[p]:=a[i];

end;

End;

{вывод результата на экран дисплея}

Writeln(‘Число различных чисел: ’,р);

ReadKey;

End.

Задача 7

Подсчитать число строк двухмерного массива А(N,M), в которых имеется хотя бы один нулевой элемент.

Назначение переменных

А- имя двумерного массива

n,m - количество строк и столбцов обрабатываемого массива, соответственно

i,j - переменные для хранения текущего значения строки и столбца в организованном для обработки матрицы циклическом процессе

р - счетчик, содержащий информацию об искомом числе

fl – переменная, имеющая только два значения: 0 или1.

Текст программы

Program zadacha7;

Uses crt ;

Var А: array [ 1..10, 1..20 ] of real ;

i, j, n, m,p,fl : integer;

begin

clrscr ;

(* ввод элементов массива *)

write ( ‘Введите количество строк : ‘ ) ; readln (n ) ;

write ( ‘Введите количество столбцов : ‘ ) ; readln (m );

write ( ‘Введите массив : ‘ ) ;

for i := 1 to n do begin

for j:= 1 to m do

begin

write ( ‘ A ( ‘, i , ‘,’, j ,’ ) = ‘ ) ; readln ( a [ i, j ] ) ;

end ;

р:=0;

(* в цикле по i осуществляется перебор строк *)

for i := 1 to n do

begin

(* в цикле по j выясняется, есть ли в i-ой строке нулевой элемент *)

fl:=0;

for j : =1 to m do

if a [ i, j ]=0 then fl:=1;

if fl=1 then p:=p+1;

end;

(* Вывод результатов *)

writeln ( ‘ Число строк в которых имеется нулевой элемент: ‘, р ) ;

ReadKey;

end.

Задача 8

Разложить натуральное число N на простые множители.

Назначение переменных

N – данное натуральное число, участвующее в процессе обработки

k – переменная, хранящая первоначальное значение натурального числа N

i - переменная, используемая в цикле while

z – строковая переменная для хранения разложения числа на простые множители

st – строковая переменная, хранящая текущее значение простого множителя

Program zadacha8;

Uses crt ;

Var k, i, n : integer;

z, st: string[200];

begin

clrscr ;

write( ‘Введите натуральное число : ‘ ) ; readln(n ) ;

k:=n;

i:=2;

z:=’1*’;

while i<n do

if n mod i=0

then

begin

n:=n div i;

str(i,st); {str -строковая процедура осуществляющая преобразование числа1 в строку st}

z:=z+st+’*’;

end

else i:=i+1;

str(n,st);

z:=z+st+’=’;

writeln(z,k);

ReadKey;

end.

Задача 9

Вычислите сумму цифр натурального числа N.

Назначение переменных

N – данное натуральное число

m – переменная, используемая в цикле while

s – сумма цифр числа N

pc – переменная, хранящая значение текущей цифры

P rogram zadacha9;

Uses crt ;

Var n, s, m, pc : integer;

begin

clrscr ;

write( ‘Введите натуральное число : ‘ ) ; readln(n ) ;

m:=n;

s:=0;

while m>0 do

begin

pc:=m mod 10;

s:=s+pc;

m:=(m-pc) div 10;

end;

writeln(‘Сумма цифр числа ’,n,’ равна ’,s);

ReadKey;

end.

Задача 10

Выяснить, имеется ли в слове X буква «а».

Вариант 1:

Назначение переменных

X – строковая величина, содержащая данное слово

р – количество букв «а» в слове Х

i - переменная, используемая в цикле for для организации обращений к буквам слова Х

Program zadacha10;

Uses crt ;

Var x: string [30];

p, i : integer;

begin

clrscr ;

write( ‘Введите слово : ‘ ) ; readln(x );

p:=0;

for i:=1 to length(x) do

if copy(x,i,1)=’a’ then p:=p+1;

if p>0 then writeln (‘Имеется буква «а»’)

else writeln (‘Буквы «а» в слове нет’)

ReadKey;

end.

Вариант 2:

Назначение переменных

X – строковая величина, содержащая данное слово

z – строковая величина, принимающая одно из двух значений: «Нет букв «а» или «Имеется буква «а»

i - переменная, используемая в цикле for для организации обращений к буквам слова Х

Program zadacha10;

Uses crt ;

Var x, y: string [30];

i : integer;

begin

clrscr ;

write( ‘Введите слово : ‘ ) ; readln(x );

z:= ‘Нет букв «а»’;

for i:=1 to length(x) do

if copy(x,i,1)=’a’ then z:=’Имеется буква «а»’;

writeln (z);

ReadKey;

end.