- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •1. Среда программирования turbo pascal 7.0
- •1.1. Структура меню среды
- •1.2. Правила оформления программ
- •1.3. Команды редактора тп
- •Команды удаления и вставки
- •1.4. Компиляция и исправление синтаксических ошибок
- •2. Элементы языка pascal
- •2.1. Алфавит языка
- •2.2. Константы. Идентификаторы
- •2.3. Операторы
- •2.3.1. Оператор присваивания
- •2.3.2. Оператор безусловного перехода
- •Стандартные функции
- •2.3.3. Условный оператор if
- •2.3.4. Опеpатоp варианта case
- •2.3.5. Составной и пустой операторы
- •2.3.6. Операторы цикла
- •2.4. Процедуры прерываний
- •2.5. Типизированные константы
- •2.6. Структура программы
- •2.7. Подпрограммы
- •2.7.1. Определение процедур и функций
- •2.7.2. Вложенные подпрограммы
- •2.7.3. Вызов подпрограмм
- •2.7.4. Процедуры
- •2.7.5. Функции
- •2.7.6. Передача в подпрограмму параметров-массивов и параметров-строк
- •2.7.7. Рекурсия
- •2.8. Типы в Турбо Паскале
- •2.8.1. Целые типы
- •Классификация целых типов
- •Встроенные процедуры и функции для целых типов
- •2.8.2. Логический тип
- •2.8.3. Символьный тип
- •Служебные символы
- •2.8.4. Строковый тип
- •Встроенные функции и процедуры для обработки строк
- •Процедуры преобразования
- •2.8.5. Перечислимый тип
- •2.8.6. Ограниченный тип (диапазон)
- •2.8.7. Вещественные типы
- •Вещественные типы
- •Встроенные функции
- •2.8.8. Структурированные типы данных. Массивы
- •2.8.9. Множества
- •2.8.10. Записи
- •2.9. Изменение типа выражения
- •2.10. Процедурные типы
- •2.11. Файлы
- •Общие процедуры и функции для работы с файлами
- •2.11.1. Текстовые файлы
- •2.11.2. Типизированные файлы
- •2.11.3. Нетипизированные файлы
- •2.12. Указатели и динамическая память
- •2.13. Модули
- •2.14. Библиотека Турбо Паскаля
- •2.14.1. Модуль crt
- •2.14.2. Модуль graph
- •Var driver, Mode: integer переменные драйвера и режима.
- •Управление графическим режимом
- •Управление экраном, окном, страницей
- •Управление цветом и палитрой
- •Работа с точками
- •Работа с линиями
- •Построение фигур из линий
- •Построение криволинейных фигур
- •Работа с текстом
- •Обмен с памятью
- •2.15. Динамические структуры данных
- •2.15.1. Связанные динамические данные. Списки
- •Чтобы сослаться на двунаправленный кольцевой список как на единый программный объект, используется указатель, значением которого является ссылка на заглавное звено списка.
- •2.15.2 Очередь
- •2.15.3. Стек
- •3. Практическое программирование Этапы подготовки и решения задач на компьютере
- •Порядок выполнения лабораторных работ
- •Лабораторная работа 1 Основы программирования в среде Турбо Паскаля.
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления
- •Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
- •Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
- •Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
- •Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Лабораторная работа 7
- •Лабораторная работа 8 Программирование с использованием функций
- •Лабораторная работа 9 Программирование с использованием процедур
- •Лабораторная работа 10 Обработка символьных и строковых данных
- •Лабораторная работа 11 Файлы
- •Лабораторная работа 12 Записи
- •Лабораторная работа 13 Решение нелинейных уравнений
- •Задание (программа_13)
- •Лабораторная работа 14 Вычисление приближенного значения определенного интеграла
- •Лабораторная работа 15 Модульное программирование
- •Лабораторная работа 16 Графика
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Зарезервированные слова Turbo Pascal 7.0
- •Приложение в
- •Кодировка символов в соответствии с кодами ascii
- •Приложение г
- •Альтернативная кодировка госТа для кодов 128...255
- •Клавиши с кодами из двух частей
- •Содержание
Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
Цель работы: научиться разрабатывать и отлаживать программы с использованием регулярных типов (векторов).
Массив - упорядоченная структура однотипных данных, хранящихся последовательно.
Массив обязательно имеет размеры, определяющие, сколько в нем хранится элементов. Описывается в разделе TYPE (или VAR). Структура описания одномерного массива:
<имя>=ARRAY[диапазон_индексов] OF <базовый_тип>;
Диапазон указывает значения индексов первого и последнего элементов в массиве.
Пример. Найти значение и номер наименьшего элемента в одномерном массиве. При задании элементов исходного массива типизированной константой СА решения задачи имеет вид (рис.8, а) и используется следующая программа:
Program lr6_1;
const a: array[1..10] of integer=(5,2,7,1,8,3,4,5,6,6);
var i, min, n: integer;
begin
min:=a[1]; n:=1;
for i:=2 to 10 do
if a[i]<min then begin
min:=a[i];
n:=i;
end;
writeln('минимальный элемент равен ',min, ' n=',n);
end.
Если элементы массива вводятся с клавиатуры, то СА имеет вид (рис.8,б) и текст программы изменится:
program lr6_2;
var a: array[1..10] of integer;
i, min, n: integer;
begin
read(a[1]);
min:=a[1]; n:=1;
for i:=2 to 10 do begin
read(a[i]);
if a[i]<min then begin
min:=a[i]; n:=i;
end;
end;
writeln('минимальный элемент равен ', min, ' n=',n);
end.
Задание 1
Начертить структурную схему алгоритма, написать и отладить программу для одной из следующих задач. В программе 6_1 исходные массивы задать типизированными константами. В программе 6_2 элементы исходных массивов ввести через оператор ввода.
1. Дан массив из N чисел (N>8). Вычислить их среднее геометрическое значение.
2. Дан массив из N чисел (N>10). Найти максимальное значение.
3. Дано 20 чисел. Найти их среднее арифметические значение.
4. Дано 12 вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к какому-нибудь заданному целому числу Х.
5. Дана последовательность из 15 целых чисел. Определить количество отрицательных чисел в ней и максимальное число подряд следующих отрицательных чисел.
6. Дано 15 целых чисел. Найти наибольшее из них. Определить, сколько из чисел принимает наибольшее значение.
7. Дано целое n>1 и вещественные числа x1,x2,..,xn. Вычислить математическое ожидание и дисперсию по формулам
M=, D=.
8. Дан массив из N чисел (N>10). Вычислить сумму элементов с нечетными индексами и их среднее арифметические значение.
9. Даны два одномерных массива А и В. Вычислить элементы массива С по правилу: если аi и bi различны, то сi присвоить их сумму, при одинаковых аi, bi в сi переписать соответствующий элемент массива А.
10. Дано 10 вещественных чисел. Вычислить разность между максимальным и минимальным из них.
11. Дано 10 вещественных чисел. Определить, образуют ли они возрастающую последовательность.
12. Дан массив X из n чисел (n>10). Вычислить:
y = x1 - x2 + x3 - ...- xn-1 +xn .
13. Дано 18 чисел. Определить количество элементов, отличное от последнего числа.
14. Дано 12 чисел. Напечатать сначала все отрицательные из них, а затем все остальные.
15. Сформировать одномерный массив из 15 простых чисел.
16. Дано восемь натуральных чисел. Найти их наибольший общий делитель.
17. Дана последовательность натуральных чисел. Вычислить сумму тех из них, порядковые номера (индексы) которых – простые числа.
18. Дан массив из 20 натуральных чисел. Вычислить сумму тех из них, порядковые номера которых - числа Фибоначчи, определяемые формулами
f0 = f1=1; fn =fn-1 + fn-2 при n=1,2,3,... .
19. Дан массив X из n чисел. Вычислить:
y = xn(xn+xn-1)(xn + xn-1 + xn-2)...(xn + ... + x1) .
20. Дано 24 целых числа. Распечатать их в обратном порядке по шесть чисел в строке.
Задание 2 (программа 6_3)
Модифицировать программу 3_2 для функций F1(x) и F2 (x) таким образом, чтобы результаты были сформированы в виде трех одномерных массивов. Выполнить ее и сравнить результаты с полученными в лабораторных работах 3 и 4.