- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
Пример 1
Определить сумму элементов матрицы Х(10,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), фамилия и дата рождения каждого студента группы (день, месяц, год). Написать программу для определения: в какой день недели родился каждый студент и сколько дней он прожил. Ответ представить в табличной форме. Учесть високосность.