- •Часть 1
- •4 Требование к отчету Отчет о проделанной работе должен содержать:
- •5 Теоретические положения
- •5.1 Элементы языка
- •5.1.1 Алфавит языка
- •5.1.2 Идентификаторы
- •5.1.3. Константы
- •5.1.4 Выражения
- •5.3 Структура программы
- •5.3.1 Заголовок программы
- •5.3.2 Блок описаний
- •5.3.3 Раздел действий (операторов).
- •5.4 Комментарии
- •5.5 Оператор присваивания
- •5.6 Процедура ввода информации
- •5.7 Процедура вывода информации на печать
- •6 Методические рекомендации
- •7 Контрольные вопросы
- •Приложение а
- •Приложение б Сообщения об ошибках.
- •Библиография
- •Методические указания к лабораторной работе
- •4. Требование к отчету Отчет о проделанной работе должен содержать:
- •5 Теоретические положения
- •5.1 Логические выражения
- •5.2 Составной оператор
- •5.3 Оператор if
- •6 Методические рекомендации
- •7. Контрольные вопросы
- •Приложение
- •Библиография
- •1 Цель работы
- •3 Порядок выполнения работы
- •4 Требования к отчету
- •5 Общие положения
- •5.1 Алгоритмы циклической структуры
- •5.2 Оператор цикла с параметром
- •5.3 Цикл с предпроверкой условия
- •5.4 Цикл с постпроверкой условия
- •6 Методические указания к выполнению работы
- •7 Контрольные вопросы
- •1 Цель работы
- •2 Задачи работы
- •3 Порядок выполнения работы
- •4 Отчет о проделанной работе должен содержать
- •5 Теоретические положения
- •5.1 Общие сведения о массивах
- •5.2 Одномерные массивы
- •5.3 Примеры основных типов задач с использованием одномерных массивов
- •5.3.1 Нахождение суммы элементов массива
- •5.3.2 Нахождение наибольшего элемента в массиве
- •5.3.3 Нахождение количества элементов массива, удовлетворяющих некоторому условию
- •5.3.4 Сортировка массива по возрастанию
- •5.4 Двумерные массивы
- •5.5 Примеры задач с использованием двумерных массивов
- •5.5.1 Нахождение наибольшего элемента в заданной строке матрицы
- •5.5.2 Нахождение элементов массива, удовлетворяющих определенному условию
- •5.5.3 Нахождение сумм элементов строк матрицы
- •6 Методические рекомендации к выполнению работы
- •7 Контрольные вопросы
- •Библиография
- •Приложение а Варианты заданий на тему «Одномерные массивы»
- •Приложение в Варианты заданий на тему «Двумерные массивы»
- •Методические указания к лабораторной работе
- •Использование строковых переменных в среде программирования Pascal
- •4 Отчет о проделанной работе должен содержать
- •5 Теоретические положения
- •5.1 Описание переменных строкового типа
- •5.2 Процедуры и функции по работе со строками
- •5.3 Некоторые алгоритмы решения задач с использованием строковых переменных
- •6 Контрольные вопросы
- •Библиография
- •Приложение а Варианты заданий для выполнения
- •4 Требования к отчету
- •5 Основные положения
- •Результаты работы Pascal-программы
- •Система тестов
- •Система тестов
- •6 Задачи для самостоятельного решения
- •Библиография
- •Приложение а
- •Приложение б
- •Приложение в
- •6 Задачи для самостоятельного решения
- •Система тестов
- •6 Задачи для самостоятельного решения
- •Библиография
6 Задачи для самостоятельного решения
6.1 Даны действительные числа х, а, натуральное число n. Вычислить
((… ((х+а)2+…а)2+а)2+а
n cкобок
6.2 Дано действительное число х. Вычислить:
6.3 Даны натуральное n, действительное х. Вычислить:
6.4 Даны натуральное n, действительное х. Вычислить:
6.5 Даны натуральное n, действительное х. Вычислить:
6.6 Вычислить:
6.7 Вычислить:
6.8 Вычислить:
6.9 Вычислить:
6.10 Дано натуральное n. Вычислить:
6.11Дано натуральное n. Вычислить:
6.12 Дано натуральное n. Вычислить:
6.13 Дано натуральное n. Вычислить:
6.14 Дано натуральное n. Вычислить:
6.15 Дано натуральное n. Вычислить:
6.16 Дано натуральное n. Вычислить:
6.17 Дано натуральное n, действительное число х. Вычислить:
6.18 Дано натуральное n, действительное число х. Вычислить:
6.19 Дано натуральное n, действительное число х. Вычислить:
6.20 Дано натуральное n, действительное число х. Вычислить:
sin x+sin2 x+…+sin xn
6.21 Дано натуральное n, действительное число х. Вычислить:
sin x+sin x2+…+sin xn
6.22 Вычислить сумму Z = 1 + 2 + 3 + ... . Вычисления прекратить, когда значение Z превысит заданное значение A.
6.23. Известен начальный вклад клиента в банк и процент годового дохода. Определить, через сколько лет вклад превысит заданный размер и каков при этом будет размер вклада.
6.24. Торговая фирма в первый день работы реализовала товаров на P тыс. руб., а затем ежедневно увеличивала выручку на 3%. Какой будет выручка фирмы в тот день, когда она впервые превысит заданное значение Q? Сколько дней придется торговать фирме для достижения этого результата?
6.25. Малое предприятие в первый день работы выпустило P единиц товарной продукции. Каждый последующий день оно выпускало продукции на Q единиц больше, чем в предыдущий. Сколько дней потребуется предприятию, чтобы общее количество выпущенной продукции за все время работы впервые превысило запланированный объем?
6.26 Рассчитать сумму бесконечного ряда. Суммирование проводить, пока очередной член ряда по модулю не станет меньше заданной точности e. Результат сравнить с точным значением ST, а погрешность сопоставить с величиной e.
Таблица
№ |
Вид суммы |
N |
Вид ряда |
ST |
e |
6.26.1 |
|
2 |
|
|
10-4 |
6.26.2 |
4 |
|
|
10-6 |
|
6.26.3 |
|
2 |
|
|
10-5 |
6.26.4 |
4 |
|
|
10-7 |
|
6.26.5 |
|
2 |
|
|
10-4 |
6.26.6 |
4 |
|
|
10-5 |
|
6.26.7 |
|
2 |
|
|
10-4 |
6.26.8 |
4 |
|
|
10-5 |
Библиография
1. Вальвачев А.Н., Крисевич В.С. Программирование на языке Паскаль для персональных ЭВМ: Справочное пособие.-Минск: Вышейш. шк., 1989.-223с.
2. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. – М.: Нолидж, 2000. – 576с.
Методические указания
к ПРАКТИЧЕСКИМ ЗАНЯТИЯМ ПО КУРСУ «ИНФОРМАТИКА»
МАССИВЫ
1 Цель занятия
Изучение основ построения алгоритмов и программ обработки массивов данных
2 Задачи занятия
Освоение основных приемов и приобретение навыков в составлении алгоритмов и программ обработки массивов данных
3 Содержание занятия
3.1 Ознакомиться с основными теоретическими положениями.
3.2 Освоить приемы построения алгоритмов обработки массивов данных.
3.3 Разобрать приведенные в методических указаниях примеры.
3.4 Выполнить индивидуальные задания (по указанию преподавателя).
4 Требования к отчету
Отчет должен содержать название занятия, результаты выполнения индивидуальных заданий, а также основные теоретические положения по теме занятия.
5 Основные положения
Массив – это упорядоченная последовательность величин, обозначенных одним именем и индексом, который указывает положение элемента в массиве.
Массивы, объединяющие переменные с одной индексной величиной, называются одномерными. Например, элементы Z[1], Z[2], Z[3], Z[4] образуют одномерный массив {Zi}, . Элементы одномерного обозначаются именем массива и следующим за ним в квадратных скобках индексом. Индекс может быть выражением, значение которого должно быть в диапазоне, определяемом типом индекса.
При решении практических задач часто приходится иметь дело с различными таблицами данных, математическим эквивалентом которых служат матрицы. Такой способ организации данных, при котором каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен, называется двумерным массивом или таблицей.
Например, данные о планетах Солнечной системы представлены следующей таблицей (таблица 5.1):
Таблица 5.1 Планеты солнечной системы
Планета |
Расст. до Солнца |
Относ. обьем |
Относ. масса |
Меркурий |
57.9 |
0.06 |
0.05 |
Венера |
108.2 |
0.92 |
0.81 |
Земля |
149.6 |
1.00 |
1.00 |
Марс |
227.9 |
0.15 |
0.11 |
Юпитер |
978.3 |
1345.00 |
318.40 |
Сатурн |
1429.3 |
767.00 |
95.20 |
Их можно занести в память компьютера, используя понятие двумерного массива. Положение элемента в массиве определяется двумя индексами. Они показывают номер строки и номер столбца. Индексы разделяются запятой. Например: A[7, 6], D[56, 47].
Заполняется двумерный массив аналогично одномерному: с клавиатуры, с помощью оператора присваивания. Например, в результате выполнения программы:
Program Vvod2;
Var I, J : Integer;
A : Array [1..20, 1..20] Of Integer;
Begin
FOR I := 1 TO 3 DO
FOR J := 1 TO 2 DO A[I, J] := 456 + I
End.
элементы массива примут значения A[1, 1] = 457; A[1, 2] = 457; A[2, 1] = 458; A[2, 2] = 458; A[3, 1] = 459; A[3, 2] = 459.
При описании массива задается требуемый объем памяти под двумерный массив, указываются имя массива и в квадратных скобках диапазоны изменения индексов.
При выполнении инженерных и математических расчетов часто используются переменные более чем с двумя индексами. При решении задач на ЭВМ такие переменные представляются как компоненты соответственно трех-, четырехмерных массивов и т.д.
Однако описание массива в виде многомерной структуры делается лишь из соображений удобства программирования как результат стремления наиболее точно воспроизвести в программе объективно существующие связи между элементами данных решаемой задачи. Что же касается образа массива в памяти ЭВМ, то как одномерные, так и многомерные массивы хранятся в виде линейной последовательности своих компонент, и принципиальной разницы между одномерными и многомерными массивами в памяти ЭВМ нет. Однако порядок, в котором запоминаются элементы многомерных массивов, важно себе представлять. В большинстве алгоритмических языков реализуется общее правило, устанавливающее порядок хранения в памяти элементов массивов: элементы многомерных массивов хранятся в памяти в последовательности, соответствующей более частому изменению младших индексов.
Рассмотрим пример работы с двухмерными массивами. Обозначим массивом оценки учеников класса по нескольким предметам. Каждая оценка является значением элемента массива оценок А и имеет порядковый номер (два индекса). Поставим в соответствие первому индексу номер фамилии в списке учеников, а второму – номер предмета, по которому получена оценка. Тогда двумерный массив оценок можно представить в виде таблицы: каждый элемент a[i,j] находится на пересечении i-ой строки и j-го столбца.
Исходные данные могут быть представлены в виде таблицы оценок (таблица 5.2).
Таблица 5.2 Годовые оценки по предметам
Фамилия |
Предмет |
|||||
Физика |
Химия |
Матема-тика |
Информа-тика |
История |
Биология |
|
Иванов |
4 |
5 |
3 |
4 |
5 |
5 |
Петров |
4 |
5 |
4 |
3 |
4 |
4 |
Сидоров |
5 |
|
5 |
3 |
4 |
5 |
… |
… |
… |
… |
… |
… |
… |
Якупов |
4 |
3 |
4 |
5 |
4 |
5 |
Можно создать одномерные массивы фамилий S студентов и наименований предметов Р. Значением элемента массива Р будет наименование предмета, а индексом – порядковый номер предмета, например: 1 – физика, 2 – химия, 3 – математика, 4 – информатика, 5 – история, 6 – биология.
Представленная выше таблица может быть представлена в виде (таблица 5.3) набора элементов (число строк - n, число столбцов- m).
Таблица 5.3 Набор элементов
-
Массив S
Массив Р
P[1]
P[2]
P[3]
P[4]
P[5]
P[6]
S[1]
a[1,1]
a[1,2]
a[1,3]
a[1,4]
a[1,5]
a[1,6]
S[2]
a[2,1]
a[2,2]
a[2,3]
a[2,4]
a[2,5]
a[2,6]
S[3]
a[3,1]
a[3,2]
a[3,3]
a[3,4]
a[3,5]
a[3,6]
…
…
…
…
…
…
…
S[n]
a[n,1]
a[n,2]
a[n,3]
a[n,4]
a[n,5]
a[n,6]
Массив оценок можно задать с использованием функции Random, например:
For i:=1 to n do for j:=1 to m do a[i,j]:=Random(4)+2;
Для вывода элементов массива А на экран удобно использовать вложенный цикл:
For i:=1 to n do begin writeln; write(S[I]:19,’ ½’);
For j:=1 to m do write(A[i,j]:7,’ ½’) end;
Объединение отдельных переменных в массивы позволяет упорядочить элементы массива в памяти ЭВМ и тем самым облегчить их массовую обработку, а также упрощает идентификацию элементов массивов, так как для ссылки на нужный элемент массива достаточно указать его индексы.
Пример 1. Вычислить сумму элементов числового массива A = (a1 , a2 , ... , aN ).
Для решения задачи используем циклический алгоритм. Подготовка цикла заключается в задании начального значения суммы, равного нулю. В качестве параметра цикла берем номер члена последовательности. Начальное значение параметра цикла равно 1, конечное значение – числу членов последовательности, шаг цикла +1. В теле цикла выполняется последовательное суммирование. Окончание цикла будет при значении параметра цикла, превышающего количество членов последовательности.
Тест
Данные |
Результат |
|
||||||||||||||||||||||
N=5 |
A=(3, 5, -2, 6, 3) |
S=15.0 |
|
|||||||||||||||||||||
Псевдокод алг Сумма (арг цел N, арг вещ
таб A[1:N], рез вещ S)
дано N>0
нач цел i
S:=0
нц для i от 1 до N
S := S + A[i]
кц
кон
|
Исполнение алгоритма
|
|
||||||||||||||||||||||
Turbo Pascal Program Summa;
Uses Crt;
Type Mas = Array [1..20] of Real;
Var A : Mas;
i, N : Integer;
S : Real;
BEGIN
ClrScr; {очистка экрана }
Write('Введите N = ');
ReadLn(N); {ввод значения N}
For i := 1 to N dо {цикл по элементам массива}
begin
Write('A [ ', i , ' ] = ');
ReadLn(A[i]) {ввод элементов массива}
end;
S := 0; {присваивание начального значения}
For i := 1 to N do S := S+A[i]; {суммирование}
WriteLn;
WriteLn('Сумма равна ', S : 5 : 1);
ReadLn
END.
|
Блок-схема
|
|
|
|||||||||||||||||||||
Результаты работы Pascal-программы
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
Пример 2. Найти наибольший элемент числового массива A = (a1, a2 , ..., aN ) и его номер.
Тест
Данные |
Результаты |
|
||||||||||||||||||||
N=4 |
A=(3,-1,10, 1) |
Amax=10 |
K=3 |
|
||||||||||||||||||
Псевдокод алг МаксЭлемент (арг цел N, арг вещ таб A[1:N],
рез вещ Amax, рез цел k)
нач цел i
Amax := A[1]; k := 1
нц для i от 2 до N
если A[i] > Amax
то Amax:=A[i]; k := i
все
кц
кон
Исполнение алгоритма
|
|
|
||||||||||||||||||||
Turbo Pascal Program MaxElem;
Uses Crt;
Type Mas = Array [1..20] of Real;
Var A : Mas;
i, N : Integer;
k : Integer;
Amax : Real;
BEGIN
СlrScr;
Write('Введите N = ');
ReadLn(N);
For i := 1 to N do {Ввод значений элементов массива А}
begin
Write('A [ ', i, ' ] = '); ReadLn(A[i])
end;
Amax := A[1]; k:=1; {Поиск максимального элемента}
For i := 2 to N do
If A[i] > Amax then
begin
Amax := A[i]; k := i
end;
WriteLn; WriteLn('Наибольший элемент' , k , '-й');
WriteLn('Его значение ', Amax : 5 : 1); ReadLn
END. |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
Пример 3. В баскетбольную команду могут быть приняты студенты, рост которых превышает 170 см. Составьте список кандидатов в команду изстудентов класса.