Автор: Пользователь скрыл имя, 07 Марта 2013 в 02:12, курс лекций
Лекция 1. Представление алгоритмов на языке Программирования ПаскальАВС.
Лекция 2. Построение линейных алгоритмов
Лекция 3. Алгоритмы, содержащие структуру ветвления.
Лекция 4. Алгоритмы, содержащие структурные операторы циклов.
...
Лекция 9. Файловый тип данных
Var i:Integer;
Begin
For i:=1 to k do Write(y[i]:5);
Writeln;
End;
{Нахождение минимальной суммы}
Procedure Naim(k:Integer; x:mas);
Var I, min, nom:Integer;
Begin
min:=x[1];
nom:=1;
For i:=1 to k do If x[i]<min Then begin min:=x[i]; nom:=i; end;
Writeln(‘Наименьшая сумма=’,min,’ и расположена в строке-’,nom);
End;
{Основная программа}
Var n,m:Integer; a:tabl; b:mas;
Begin
Writeln('Ввести количество строк и столбцов');
Readln(n,m);
Wwod2(n,m,a);
Writeln(‘Исходный массив’);
Vivod2(n,m,a);
Sosd(n,m,a,b);
Writeln(‘Массив сумм’);
Vivod1(n,b);
Naim(n,b);
End.
Задача. Дан двумерный массив целых чисел, который содержит не более 10 строк и не более 10 столбцов. Массив вывести на экран в виде матрицы. Поменять k-ую и p-ую строки, если w и р вводятся с клавиатуры.
Program a3;
Type tabl=Array[1..10,1..10] of Integer;
{Процедура ввода элементов двумерного массива}
Procedure Wwod2(k,l:Integer; Var x:tabl);
Var I,j : Integer;
Begin
For I := 1 to k do
For j := 1 to l do
X[I,j]:=Random(100);
End;
{Процедура вывода элементов двумерного массива на экран в виде матрицы}
Procedure Vivod2(k,l:Integer; x:tabl);
Var I,j:Integer;
Begin
For I := 1 to k do
Begin
For j:=1 to l do Write(x[I,j]:5};
Writeln;
End;
End;
{Процедура обмена строк}
Procedure obmen(k,l,w,p:Integer; Var c:tabl);
Var I,j,x:Integer;
Begin
For j:=1 to l do
Begin x:=a[w,j]; a[w,j]:=a[p,j]; a[p,j]:=x; End;
End;
{Основная программа}
Var a:tabl; n,m,w,p:Integer;
Begin
Writeln('Ввести количество строк и столбцов');
Readln(n,m);
Wwod2(n,m,a);
Writeln(‘Исходный массив’);
Vivod2(n,m,a);
Writeln('Ввести номера строк для обмена');
Readln(w,p);
Obmen(n,m,w,p,a);
Writeln(‘Массив сумм’);
Vivod2(n,m,a);
End.
Задача. Дан двумерный массив целых чисел, который содержит не более 10 строк и не более 10 столбцов. Найти и вывести номера тех столбцов, все элементы которых четные.
Program a4;
Uses Crt;
Type tabl=Array[1..10,1..10] of Integer;
{Процедура ввода элементов двумерного массива}
Procedure Wwod2(k,l:Integer; Var x:tabl);
Var I,j : Integer;
Begin
For I := 1 to k do
For j := 1 to l do
X[I,j]:=Random(100);
End;
{Процедура вывода элементов двумерного массива на экран в виде матрицы}
Procedure Vivod2(k,l:Integer; x:tabl);
Var I,j:Integer;
Begin
For I := 1 to k do
Begin
For j:=1 to l do Write(x[I,j]:5};
Writeln;
End;
End;
{Нахождение тех столбцов, все элементы которых четные}
Procedure Chet(k,l:Integer; c:tabl);
Var I,j,p:Integer;
Begin
For j:=1 to l do
Begin
p:=0;
For i:=1 to k do If c[i,j] mod 2<>0 Then p:=1;
If p=0 Then Writeln('В ',j:3,' столбце все элементы четные');
End;
End;
{Основная программа}
Var n,m:Integer; a:tabl;
Begin
Writeln('Ввести количество строк и столбцов');
Readln(n,m);
Randomize;
Wwod2(n,m,a);
Writeln(‘Исходный массив’);
Vivod2(n,m,a);
Chet(n,m,a);
End.
12.Свойства
элементов, лежащих на
Двумерный массив, у которого одинаковое количество строк и столбцов, называется квадратным. У квадратного массива есть главная и побочная диагональ. Элементы, лежащие на диагоналях имеют некоторые свойства:
1.Элементы, лежащие на
главной диагонали, имеют
2.У элементов, лежащих на побочной диагонали сумма индексов i+j=n+1. Поэтому, элемент побочной диагонали можно записать так: A[i, n+1-i].
Этими свойствами часто пользуются при решении задач.
Задача. Дан квадратный двумерный массив целых чисел размерностью N<=10. Найти сумму элементов, которые находятся под побочной диагональю.
Program a5;
Uses Crt;
Type tabl=Array[1..10,1..10] of Integer;
{Процедура ввода элементов двумерного массива}
Procedure Wwod2(k,l:Integer; Var x:tabl);
Var I,j : Integer;
Begin
For I := 1 to k do
For j := 1 to l do
X[I,j]:=Random(100);
End;
{Процедура вывода элементов двумерного массива на экран в виде матрицы}
Procedure Vivod2(k,l:Integer; x:tabl);
Var I,j:Integer;
Begin
For I := 1 to k do
Begin
For j:=1 to l do Write(x[I,j]:5};
Writeln;
End;
End;
{Нахождение суммы
элементов, которые
Procedure Sum(k:Integer; c:tabl);
Var I,j:Integer;
Begin
s:=0;
For i:=2 to k do
For j:=k+2-i to k do s:=s+a[i,j];
Writeln('Сумма элементов под побочной диагональю=',s:6);
End;
{Основная программа}
Var n,m:Integer; a:tabl;
Begin
Writeln('Ввести количество строк и столбцов');
Readln(n,m);
Randomize;
Wwod2(n,m,a);
Writeln(‘Исходный массив’);
Vivod2(n,m,a);
Sum(n,m,a);
End.
Информация о работе Лекции по "Языкам и методам программирования" (PascalABC)