- •Департамент образования и науки
- •1. Этапы решения задач на эвм. Алгоритмизация. Блок-схемы.
- •2. Назначение системы программирования.
- •3.Связь функция - клавиатура в интегрированной среде Turbo Pascal
- •4. Команды экранного редактора
- •4.1 Команды перемещения курсора
- •4.2 Команды вставки/удаления
- •4.3 Команды работы с блоками
- •5. Технология компиляции
- •6. Технология отладки программы
- •7. Программирование линейных алгоритмов
- •Задание 1
- •8. Программирование разветвляющихся вычислительных процессов
- •Задание 2
- •9. Программирование циклов с параметром
- •Задание 3
- •10. Программирование циклов с условием
- •Задание 4
- •11. Работа с векторами
- •Задание 5
- •12. Работа с матрицами
- •Задание 6
- •13. Обработка символьных строк
- •Задание 7
- •14. Записи. Файлы.
- •Задание 8
- •15. Процедуры
- •Задание 9
- •16. Функции
- •Задание 10
10. Программирование циклов с условием
Для программирования циклов ПОКА в Паскале существуют оператор цикла с предусловием WHILE и оператор цикла с постусловием REPEAT.
Задание 4
ЦЕЛЬ РАБОТЫ:
Овладеть навыками программирования на языке Паскаль алгоритмов циклической структуры с использованием операторов цикла с предусловием и постусловием.
ПРИМЕР:Вычислить сумму членов рядас точностью до члена ряда, меньшего Е.
А Л Г О Р И Т М
алгСумма ряда
аргЕ: вещ
резS: вещ
рабZ: вещ, n: цел
нач
ввод Е
n:=1; Z:=1/6; S:=0;
нц пока I Z I >= E
S:=S+Z;
n:=n+1;
кц
выводS
кон
П Р О Г Р А М М А
program Summa;
var n:integer;
S,Z,E: real;
begin
writeln ('ввести точность');
readln (E);
n:=1; Z:=1/6; S:=0;
While abs(z) >=E do
begin
S:=S+Z;
n:=n+1;
Z:=n/((n+1)*(n+2))
end;
writeln ('S=', S:10:2)
end.
ПОРЯДОК РАБОТЫ
1. Разработать алгоритм и программу для вычисления суммы с
заданной точностью (табл.7). Получить результат.
СОДЕРЖАНИЕ ОТЧЕТА
Отчет по лабораторной работе должен содержать условия, алгоритмы, тексты программ, исходные данные и результаты по двум примерам.
ТАБЛИЦА 7
НОМЕР |
УСЛОВИЕ |
НОМЕР |
УСЛОВИЕ |
1 |
8 | ||
2 |
9 | ||
3 |
10 | ||
4 |
11 | ||
5 |
12 | ||
6 |
|
13 | |
7 |
14 |
11. Работа с векторами
Под массивом понимается упорядоченная совокупность конечного числа данных одного типа, объединенных под общим именем. Имена массивов образуются так же, как и имена простых переменных. Одномерный массив называется вектором. Для описания массивов используется служебное слово array. Массив в Турбо-Паскале можно описывать двумя способами:
а) в разделе описания переменных VAR:
var <имя переменной>:array[тип индекса] of <тип компоненты>;
б) определить сначала тип, а затем описать массив этим типом
type
<имя типа>: array [тип индекса] of <тип компоненты>;
var
<имя переменной>: <имя типа>;
где <тип индекса> - порядковый тип;
<тип компоненты> - любой тип.
Задание 5
ЦЕЛЬ РАБОТЫ:
1. Усвоить правила работы с переменными типа массив языка программирования Паскаль.
2. Научиться составлять алгоритмы и программы для обработки одномерных массивов.
ПРИМЕР:Создать массив из N случайных целых чисел, равномерно распределенных в диапазоне от 0 до 100. Вычислить среднее арифметическое этих чисел.
А Л Г О Р И Т М
алгСреднее арифметическое
аргn:цел;
резm: цел таб [1..n];
s: вещ
раб i: цел
нач
вводn
нц дляiот1доn
m[i]:=random(101)
вывод m[i]
кц
s:=0;
нцдляiот1доn
s:=s+m[i]
кц
s:=s/n;
вывод s
кон
П Р О Г Р А М М А
program SRED;
const
nmax=1000;
type
x=array [1 .. nmax] of integer;
var
m:x;
i,n:integer;
s:real;
begin
writeln ('n='); readln(n);
{создание массива}
for i:=1 to n do
begin
m[i]:=random (101);
writeln (m[i])
end;
s:=0;
for i:=1 to n do
s:=s+m[i];
s:=s/n;
writeln ('s='s)
end.
ПОРЯДОК РАБОТЫ
1. Разработать алгоритм и программу примера 1 (табл.8).
Вектор вводить с клавиатуры.
2. Разработать алгоритм и программу примера 2 (табл.9).
Вектор сформировать из случайных целых чисел.
СОДЕРЖАНИЕ ОТЧЕТА
Отчет должен содержать условия, алгоритмы, тексты программ, исходные данные и результаты по двум примерам.
ТАБЛИЦА 8
1 |
Создайте одномерный массив натуральных чисел. Заполните его числами с клавиатуры. Выведите на экран массив и его же в обратном порядке. Найдите сумму четных элементов массива. Подсчитайте их количество. |
2 |
Создайте одномерный массив. Заполните его случайными числами от -10 до 10. Выведите на экран массив и его же в обратном порядке. Найдите минимальное значение и его индекс ( первый если таких значений несколько). |
3 |
Создайте одномерный массив. Заполните его по формуле (каждый элемент массива должен быть больше его порядкового номера на 2). Выведите на экран массив и его же в обратном порядке. Найдите среднее арифметическое тех элементов массива, индексы которых являются степенями двойки. Подсчитайте их количество. |
4 |
Создайте одномерный массив. Элементы массива должны быть числами от 1 до 100. Заполните массив числами с клавиатуры. Если пользователь вводит число, большее 100 или меньшее 1 – программа должна сообщать ему об этом и не принимать введенное число как элемент массива. Выведите на экран массив. Найдите среднее арифметическое нечетных элементов массива. Подсчитайте их количество. |
5 |
Создайте одномерный массив. Заполните его по формуле (каждый элемент массива должен быть больше его порядкового номера в 2iраза). Выведите на экран массив. Найдите произведение элементов кратных 3. Подсчитайте их количество. |
6 |
Создайте одномерный массив. Заполните его случайными числами до 90. Выведите на экран массив. Подсчитайте сумму его четных элементов и произведение нечетных элементов. Подсчитайте их количество. |
7 |
Заполнить случайными числами из диапазона [0,1] вещественный линейный массив из Nчисел. Найти максимальное значение и его индекс (первый, если таких значений несколько). |
8 |
Создайте одномерный массив, представляющий собой последовательность из нулей и единиц (через функции формирования случайного числа). Выведите на экран массив. Поставьте в начало этой последовательности нули, а затем единицы. Подсчитайте количество нулей и единиц. |
9 |
Создайте массив натуральных чисел. Числа введите с клавиатуры. Найдите сумму элементов кратных 5. Подсчитайте их количество. |
10 |
Создайте одномерный массив. Заполните его случайными числами от -20 до 20. Подсчитайте сумму отрицательных и положительных элементов массива. Подсчитайте их количество. |
ТАБЛИЦА 9
НОМЕР |
УСЛОВИЕ |
1 |
Даны два вектора целых чисел А и В. Вычислить вектор С, который содержит нечетные элементы вектора А, которых нет в векторе В. |
2 |
Расположить элементы вектора в обратном порядке. Дополнительный массив не использовать. |
3 |
Найти среднее арифметическое элементов массива х(n), исключив из них максимальное и минимальное значение. |
4 |
Вектор B(n) заменить вектором, у которого элементы образуются делением вектора В на их сумму. |
5 |
Заменить все элементы вектора x(m), стоящие до максимального, нулями. |
6 |
В массиве R(k) найти минимальный элемент среди положительных и максимальный среди отрицательных. |
7 |
В массиве У(n) заменить все его элементы, стоящие после минимального, нулями. |
8 |
Даны массив A(n) целого типа и целое число х. Призвести перестановку элементов массива так, чтобы в начале массива стояли элементы, значения которых меньше х, затем элементы, равные х, а следом элементы, значения которых больше х, в том порядке, в каком они стояли в массиве. |
9 |
Даны два вектора А и В. Сформировать вектор С, который содержит элементы, присутствующие в обоих массивах. |
10 |
В векторе У(m) поменять местами максимальный и минимальный элементы. |