русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Общие указания


Дата добавления: 2014-11-28; просмотров: 681; Нарушение авторских прав


 

В Паскале многомерные массивы могут определяться последовательно: сначала объявляется один массив, затем второй, элементами которого являются объявленные ранее массивы, и т.д. Один массив вкладывается в другой, и степень такого вложения не ограничена.

Например:

 

type str=array[1..10] of real;

tabl=array[1..5] of str;

Приведенное описание двумерного массива можно заменить эквивалентным описанием

 

type tabl=array[1..5,1..10] of real;

При обработке двумерных массивов обычно применяются вложенные циклы. Цикл, охватывающий другие циклы, называется внешним, остальные циклы - внутренними.

Пример выполнения задания 1 лабораторной работы

Пример 21. В матрицы a(4,5) найти произведение положительных элементов.

 
 

Блок-схема

Порядок работы:

Шаг 1. Вводим матрицу a(4,5).

Шаг 2. Задаем начальное значение произведения p=1.

Шаг 3. Организовываем цикл, который перебирает строки матрицы (то есть индекс i), начиная с 1-й и заканчивая 4-й.

Шаг 4. Организуем цикл, который перебирает столбцы матрицы (то есть индекс j), начиная с 1-го и заканчивая 5-м.

Шаг 5. Если aij > 0, тогда присваиваем p = p × aij.

Шаг 6. Если цикл по j не закончился, идем на начало цикла, то есть на шаг 4.



Шаг 7. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 3.

Шаг 8. Печатаем p.

Шаг 9. Останов.

Пример 22. Найти сумму четных элементов третьей строки матрицы a(4,5).

 

Порядок работы:

Шаг 1. Вводим матрицу a(4,5).

Шаг 2. Устанавливаем начальное значение суммы s = 0.

Шаг 3. Задаем номер обрабатываемой строки и = 3.

Шаг 4. Организовываем цикл, который перебирает столбцы матрицы (то есть индекс j), начиная с 1-го и кончая 5-м.

Шаг 5. Если aij четное, тогда присваиваем s = s + aij.

Шаг 6. Если цикл по j не закончился, идем на начало цикла, то есть на шаг 4.



Шаг 7. Печатаем s.

Шаг 8. Останов.

 

Пример 23. Вычислить средние геометрические положительных элементов каждой строки матрицы X(5,8). Определить минимальное значение этих средних и номер соответствующей строки.

Программа имеет вид:

program pr23;

uses crt;

const m=5; n=8;

type stroka = Array[1..n] of real;

matr = array[1..m] of stroka;

stolb = array[1..m] of real;

var x:matr; b:stroka; sr:stolb; p,min:real;

i,j,k,nmin:integer; z:char;

begin clrscr;

for i:=1 to m do begin

WRITELN('ВВЕДИ ',N,' ЧИСЕЛ ',I,'-Й СТРОКИ');

FOR J:=1 TO N DO READ(X[I,J]); END;

WRITELN(' ':10,'ИСХОДНАЯ МАТРИЦА ');

FOR I:=1 TO M DO BEGIN

FOR J:=1 TO N DO WRITE(X[I,J]:7:1);

WRITELN;END;

{ВЫЧИСЛЕНИЕ СРЕДНИХ ГЕОМЕТРИЧЕСКИХ}

for i:=1 to m do

begin

b:=x[i]; p:=1; k:=0;

for j:= 1 to n do

if b[j]>0 then

begin p:=p*b[j];k:=k+1; end;

IF K>0 THEN SR[I]:=EXP(LN(P)/K) ELSE SR[I]:=-1;

END; {FOR}

{ПОИСК МИНИМАЛЬНОГО ЭЛЕМЕНТА}

min:=1E20;

for i:= 1 to m do

if( sr[i]<min) and (sr[i]>0) then

BEGIN MIN:=SR[I];NMIN:=I; END;

WRITELN;WRITELN(' ':5,' РЕЗУЛЬТАТЫ РАСЧЕТА');

FOR I:=1 TO M DO

WRITELN('СР.ГЕОМ .',I,'-Й СТРОКИ=',SR[I]:7:2);

FOR I:= 1 TO 34 DO WRITE(' = ');

WRITELN;

WRITELN('МИНИМАЛЬНОЕ СРЕДНЕЕ = ',MIN:7:2);

WRITELN('НОМЕР СТРОКИ = ',NMIN:2);

z:=readkey

end.

Примеры выполнения задания 2 лабораторной работы

 

Пример 24. Найти сумму четных элементов главной диагонали матрицы a(5,5).

Порядок работы:

Шаг 1. Вводим матрицу a(5,5).

Шаг 2. Устанавливаем начальное значение суммы s=0.

Шаг 3. Организовываем цикл, который перебирает строки матрицы (то есть индекс i), начиная с 1-й и заканчивая 5-й.

Шаг 4. Организовываем цикл, который перебирает столбцы матрицы (то есть индекс j), начиная с 1-го и заканчивая 5-м.

Шаг 5. Если aij четное и i = j, присваиваем s = s + aij.

Шаг 6. Если цикл по j не закончился, идем на начало цикла, то есть на шаг 4.



Шаг 7. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 3.

Шаг 8. Печатаем s.

Шаг 9. Останов.

 

Пример 25. Вычислить произведение от умножения суммы положительных элементов главной диагонали на сумму нечетных элементов побочной диагонали матрицы А(6,6).

 

Программа имеет вид

program pr25;

uses crt;

const n=6;

type raz=1..n;

matr=array[raz,raz] of integer;

var a:matr; p,s1,s2,i,j:integer; z:char;

BEGIN CLRSCR;

FOR I:=1 TO N DO BEGIN

WRITELN('ВВЕДИ ',N,' ЧИСЕЛ ',I,'-Й СТРОКИ');

FOR J:=1 TO N DO READ(A[I,J]); END;

CLRSCR;

WRITELN(' ':10, 'ИСХОДНАЯ МАТРИЦА ');

for i:=1 to n do begin

for j:=1 to n do

write(a[i,j]:5); WRITELN;END;

{ВЫЧИСЛЕНИЕ СУММЫ ДИАГОНАЛЕЙ}

s1:=0; s2:=0;

for i:=1 to n do

begin j:= n+1-i;

if a[i,i] > 0 then s1:=s1+a[i,i];

if a[i,j] MOD 2 <> 0 then s2:=s2+a[i,j];

END;

{ВЫЧИСЛЕНИЕ ПРОИЗВЕДЕНИЯ}

P:=S1*S2;

WRITELN;WRITELN(' ':10,'РЕЗУЛЬТАТЫ РАСЧЕТА ');

WRITELN('СУММА ПОЛ. ЭЛ. ГЛ. ДИАГОНАЛИ=',S1:4);

WRITELN('СУММА ОТР. ЭЛ. ПОБ. ДИАГОНАЛИ=',S2:4);

WRITELN(' ИХ ПРОИЗВЕДЕНИЕ = ',P:4);

z:=readkey

end.

 

Пример 26. Найти максимальный элемент побочной диагонали матрицы X(5,5) и вывести на печать весь столбец, в котором он находится.

Программа имеет вид:

program pr26;

uses crt;

const n=5;

type raz=1..n;

matr=array[raz,raz] of real;

var x:matr; max:real; i,j,jmax:raz; z:char;

BEGIN CLRSCR;

FOR I:=1 TO N DO BEGIN

WRITELN('ВВЕДИ',N,'ЧИСЕЛ ',I,'-Й СТРОКИ');

FOR J:= 1 TO N DO READ(X[I,J]);

END;

CLRSCR;

WRITELN(' ':5, 'ИСХОДНАЯ МАТРИЦА ');

for i:=1 to n do begin

for j:=1 to n do

write(x[i,j]:5:1);

WRITELN; END;

{ПОИСК МАКСИМАЛЬНОГО ЭЛЕМЕНТА}

max:=-1e20;

for i:=1 to n do

begin j:=n+1-i;

if x[i,j]>max then

begin max:=x[i,j];jmax:=j; end;

END;

{ВЫВОД НАЙДЕННОГО СТОЛБЦА}

WRITELN; WRITELN(' МАКС. ЭЛЕМЕНТ=',MAX:5:1);

WRITELN('СТОЛБЕЦ С МАКС. ЭЛ. ',jmax:2);

for i:=1 to n do

writeln(' ':10,x[i,jmax]:5:1);

z:=readkey

end.

Пример 27. В матрице a(4,5) найти количество четных элементов в строке, в которой второй элемент положительный (если таких строк несколько, результат распечатать в отдельности для каждой).

 

Порядок работы:

Шаг 1. Вводим матрицу a(4,5).

Шаг 2. Организовываем цикл, который перебирает строки матрицы (то есть индекс i), начиная с 1-й и заканчивая 4-й.

Шаг 3. Если ai2 > 0, то идем на шаг 4, иначе берем другую строку, то есть идем на шаг 9.

Шаг 4. Устанавливаем начальное значение количества k=0.

Шаг 5. Организовываем цикл, который перебирает столбцы матрицы (то есть индекс j), начиная с 1-го и заканчивая 5-м.

Шаг 6. Если aij четное, тогда присваиваем k = k + 1.

Шаг 7. Если цикл по j не закончился, идем на начало цикла, то есть на шаг 5.

Шаг 8. Печатаем k.

Шаг 9. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 2.

Шаг 10. Останов.

 

Пример 28. В матрицы a(4,5) найти количество четных элементов в строке, у которой сумма элементов положительная (если таких строк несколько, результат распечатать в отдельности для каждой).

 

Порядок работы:

Шаг 1. Вводим матрицу a(4,5).

Шаг 2. Организовываем цикл, который перебирает строки матрицы (то есть индекс i), начиная с 1-й и заканчивая 4-й.

Шаг 3. Устанавливаем начальное значение суммы s = 0.

Шаг 4. Организовываем цикл, который перебирает столбцы матрицы (то есть индекс j), начиная с 1-го и заканчивая 5-м.

Шаг 5. Присваиваем s = s + aij.

Шаг 6. Если цикл по j не закончился, идем на начало цикла, то есть на шаг 4.



Шаг 7. Если s > 0, то идем на шаг 8, иначе - берем другую строку, то есть идем на шаг 13.

Шаг 8. Устанавливаем начальное значение количества k=0.

Шаг 9. Организовываем цикл, который перебирает столбцы матрицы (то есть индекс j), начиная с 1-го и кончая 5-м.

Шаг 10. Если aij четное, тогда присваиваем k = k + 1.

Шаг 11. Если цикл по j не закончился, идем на начало цикла, то есть на шаг 9.

Шаг 12. Печатаем k.

Шаг 13. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 2.

Шаг 14. Останов.



<== предыдущая лекция | следующая лекция ==>
Задание к лабораторной работе | Задания к лабораторной работе


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.039 сек.