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, принадлежащий главной диагонали
Описание алгоритма
Начало
Ввод с клавиатуры значение переменной 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.