Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_учебник_3.doc
Скачиваний:
33
Добавлен:
11.04.2015
Размер:
937.47 Кб
Скачать

Пример 1

Определить сумму элементов матрицы Х(10,5).

Решение

О

пределим сумму элементов одной (первой) строки матрицы. Первый индекс не изменяется, второй - изменяется от 1 до 5.

s:=0;

for j:=1 to 5 do

s:=s+x[1,j];

Но нам надо найти сумму по всем строкам, т.е. первый индекс тоже должен изменяться. Строк 10, значит, первый индекс изме­няется от 1 до 10:

S:=0;

for i:=1 to 10 do

for j:=1 to 5 do

S:=S+X[i,j];

Вся программа будет иметь вид:

Var

X:array[1..10,1..5] of real;

i,j:integer;

S:real;

Begin

for i:=1 to 10 do

for j:=1 to 5 do

Read(X[i,j]);

S:=0;

for i:=1 to 10 do

for j:=1 to 5 do

S:=S+X[i,j];

Writeln(S)

End.

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

Ввод массива (если вводится весь массив) допускается оформлять в схемах и так:

Тогда схема примет следующий вид:

Задания

№7. Определить максимальный элемент матрицы А(10,4).

№8. Все элементы первого столбца матрицы А(7,8) вычисляются по формуле

Остальные элементы вычисляются по формуле

Напишите программу для вычисления значений элементов матрицы.

№9. Вывести на печать элементы строки и столбца, на пересечении которых находится минимальный элемент матрицы Х(7,8).

№10. Вычислить

№11. Вычислить

Все элементы массивов X и Y положительные.

7. Поиск и сортировка числовых данных

В этом разделе приведен пример решения одной задачи и даны задания для самостоятельного решения.

Пример 1

Упорядочить массив Х(50) по убыванию значений элементов.

Решение

Нам надо найти максимальный элемент и поставить его на первое место, а первый элемент поставить на место максимального. Потом, начиная со второго элемента, ищем максимум и меняем со вторым элементом и т.д. Последний раз будем искать максимальное число из последних двух элементов. Следовательно, эти операции надо повторять 49 раз при J, изменяющемся от 1 до 49.

Var

x:array [1..50] of real;

nmax,j,i:integer;

b,max:real;

Begin

for i:=1 to 50 do

Read(x[i]);

for j:=1 to 49 do

begin

nmax:=j;

max:=x[j];

{Первый раз j=1 } for i:=j+1 to 50 do

{Ищем максимум, } if max<x[i] then

{который будет } begin

{стоять на } nmax:=x[i];

{первом месте } nmax:=1 {Номер надо}

end; {запоминать для}

b:=x[j]; {того, чтобы знать,}

x[j]:=x[nmax]; {какие элементы нам}

x[nmax]:=b {надо менять местами}

end;

for i:=1 to 50 do

Writeln(x[i])

End.

Задания

№1. Для одномерного числового массива Хизnэлементов определить сумму элементов, стоящих на четных местах.

№2. Для одномерного числового массива Yизmэлементов определить количество неположительных элементов массива.

№3. Для одномерного числового массива Yиз 20 элементов определить количество элементов, кратных заданному числу.

№4. Для одномерного числового массива Fиз 10 элементов определить количество отрицательных четных элементов.

№5. Для одномерного числового массива Rиз 15 элементов определить количество элементов, попадающих в интервал [54,67].

№6. Для одномерного числового массива Rиз 25 элементов составить другой массивW, состоящий из всех отрицательных элементов исходного массива.

№7. Проверить, строго ли чередуются положительные и отрицательные элементы в одномерном числовом массиве G.

№8. Проверить, равны ли все суммы двух элементов, равноотстоящих от концов одномерного числового массива.

№9. В одномерном числовом массиве заданной длины переставить элементы в обратном порядке.

№10. Упорядочить массив K(65)в порядке возрастания.

№11. Из элементов одномерного числового массива сформировать два массива так, чтобы элементы каждого массива принадлежали к заданным интервалам числовой оси.

№12. Из элементов двух упорядоченных одномерных массивов разной длины сформировать один одномерный упорядоченный массив, содержащий все элементы исходных массивов.

№13. Для двухмерного числового массива А(5,6)найти максимальный элемент и его индексы.

№14. Для квадратной матрицы определить сумму элементов, расположенных выше главной диагонали.

№15. Для квадратной матрицы определить количество положительных элементов, расположенных на побочной диагонали.

№16. Из элементов двухмерного числового массива сформировать одномерный массив, состоящий из максимальных элементов строк исходного массива.

№17. Из элементов двухмерного числового массива сформировать одномерный массив, состоящий из минимальных элементов столбцов исходного массива.

№18. Из элементов двухмерного числового массива D(9,10)сформировать одномерный массив, элементы которого являются суммами элементов столбцов исходного массива.

№19. Из элементов двухмерного числового массива N(6,7)сформировать одномерный массивQ, элементы которого являются суммами элементов строк исходного массива.

№20. В двухмерном числовом массиве J(7,8)переставить строки по неубыванию значений первых элементов строк.

№21. В двухмерном числовом массиве W(8,9)переставить столбцы по неубыванию значений первых элементов столбцов.

№22. В двухмерном числовом массиве J(7,8)переставить строки по невозрастанию сумм элементов строк.

№23. В двухмерном числовом массиве W(8,9)переставить столбцы по невозрастанию сумм элементов столбцов.

№24. В двухмерном числовом массиве J(7,8)переставить строки по неубыванию значений наименьших элементов строк.

№25. В двухмерном числовом массиве W(8,9)переставить столбцы по неубыванию значений наименьших элементов столбцов.

№26. В двухмерном числовом массиве J(7,8)переставить строки по невозрастанию значений наибольших элементов строк.

№27. В двухмерном числовом массиве W(8,9)переставить столбцы по невозрастанию значений наибольших элементов столбцов.

№28. Написать программу для определения количества дней от начала года до некоторого дня (включая его), заданного номером месяца от 1 до 12, номером дня в данном месяце от 1 до 31 и номером года от 1980 до 2010. Учесть високосность.

№29. Написать программу, которая по номеру дня (от 1 до 366) от начала года (от 1980 до 2000), определит номер месяца (от 1 до 12) и номер дня в данном месяце (от 1 до 31). Учесть високосность.

№30. Дано: сегодняшняя дата (день, месяц, год), день недели (от 1 до 7), фамилия и дата рождения каждого студента группы (день, месяц, год). Написать программу для определения: в какой день недели родился каждый студент и сколько дней он прожил. Ответ представить в табличной форме. Учесть високосность.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]