Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка по информатике

.pdf
Скачиваний:
182
Добавлен:
18.03.2015
Размер:
9.43 Mб
Скачать

repeat

write ('(*)'); i: =i + 1 until i > n;

readln end.

В примере: даже если n будет равно 0, одна звездочка все равно будет напечатана.

4. Описание оборудования и используемых программных комплексов

При выполнении лабораторной работы необходим специализированный компьютерный класс с минимальными системными требованиями компьютеров:

Процессор – Intel Pentium III; ОЗУ – 256 Mb;

видеокарта – 32 Mb.

Требуемое программное обеспечение: Операционная система Microsoft Windows;

Borland Pascal 7.0 for DOS / Borland Pascal 7.0 for Windows.

5. Краткое руководство по эксплуатации оборудования

При использовании оборудования необходимо:

соблюдать общие правила нахождения в учебных лабораториях, работы с компьютером и использования программных средств;

привести в порядок одежду; осмотреть рабочее место, убрать все мешающие работе

предметы; визуально проверить правильность подключения ПЭВМ к

электросети.

70

6. Задания

1.Введите с клавиатуры девять чисел и определите их среднее арифметическое.

2.Напишите программу, которая вводит целые числа с клавиатуры и суммирует их, пока не будет введено число 0. Воспользуйтесь условием UNTIL X = 0.

3.Выведите на экран значения функции F=sin(x) в интервале от 0 до 360 градусов с шагом 10 в два столбика следующим образом: «X=… F=…» с точностью пять знаков после десятичной точки.

4. Вычислите:

e 1

 

e 2

 

e 3

...

e 9

.

3

4

5

11

 

 

 

5.Напечатайте 15 первых степеней числа 2.

6.Найдите два целых трехзначных числа, частное которых приближает число «пи» с наибольшей точностью.

7.Сосчитайте, сколько шестизначных чисел имеют одинаковые суммы трех первых и трех последних цифр.

8.Дано натуральное n, действительное число х. Вычислить:

sin x+sin2 x+…+sinn x

9.Вывести на экран ряд чисел Фибоначчи, состоящий из n элементов.

Числа Фибоначчи – это элементы числовой последовательности

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …, в которой каждое последующее число равно сумме двух предыдущих.

10.Вычислить сумму Z = 1 + 2 + 3 + ... . Вычисления прекратить, когда значение Z превысит заданное значение A.

11.Известен начальный вклад клиента в банк и процент годового дохода. Определить, через сколько лет вклад превысит заданный размер и каков при этом будет размер вклада.

12.Дано натуральное n, действительное число х. Вычислить:

sin x+sin x2+…+sin xn

13.Вывести на экран кубы чисел от A до B.

14.Найти сумму нечетных чисел числа от 1 до числа х. Х вводит пользователь. Пример, пользователь ввел число 17. Надо вычислить сумму чисел 64=1+3+5+7+9+11+13+15. В программе определяются нечетные числа с 1 до Х и суммируются.

15.Число совершенно, если оно равно сумме всех своих делителей, кроме самого себя. Пример: 6=1+2+3. Найдите все

71

совершенные числа от 1 до 1000 и выведите их на экран. Подсказка: вам необходимо найти все делители от 1 до N. Делителем числа N называется число (b), которое делит данное без остатка. (N mod b=0).

16. Малое предприятие в первый день работы выпустило P единиц товарной продукции. Каждый последующий день оно выпускало продукции на Q единиц больше, чем в предыдущий. Сколько дней потребуется предприятию, чтобы общее количество выпущенной продукции за все время работы впервые превысило запланированный объем?

 

sin1

sin2

...

sin8

 

 

 

 

 

 

17. Найти сумму элементов ряда 2

3

9 .

 

18.Найти сумму и количество элементов последовательности, которые по модулю больше 0.001. Последовательность:

S = 1/2 - 2/4 + 3/8 - 4/16 + ... - ...

19.Вывести все квадраты натуральных чисел, не превосходящие данного числа N. Пример: N=50 | 1 4 9 16 25 36 49.

20.Торговая фирма в первый день работы реализовала товаров на P тыс. руб., а затем ежедневно увеличивала выручку на 3%. Какой будет выручка фирмы в тот день, когда она впервые превысит заданное значение Q? Сколько дней придется торговать фирме для достижения этого результата?

7.Методика выполнения заданий

Для выполнения заданий необходимо:

1)изучить теоретическую часть (п.3);

2)разработать алгоритмы для решения задач согласно выданному варианту, составить программы на языке Pascal, воспользовавшись приведенными примерами, протестировать и представить полученный результат преподавателю;

3)ответить на контрольные вопросы;

4)создать отчет по лабораторной работе в электронном виде.

72

8. Требования к содержанию и оформлению отчета

Отчет к лабораторной работе предоставляется в печатном варианте и должен содержать:

название и цель работы; номер и условие своего варианта;

тексты разработанных программ (в печатном и электронном

виде);

полученные при расчетах результаты; анализ полученных результатов;

ответы на контрольные вопросы в соответствии с указаниями преподавателя.

9. Критерии оценки выполнения лабораторной работы

Лабораторная работа считается выполненной, если:

задание к лабораторной работе выполнено в полном объеме; студент представил тексты программ и результаты их

выполнения;

результаты выполнения программ соответствуют поставленным задачам;

при устном ответе на 2-3 контрольных вопроса по указанию преподавателя студент демонстрирует знание основных операторов и определений изученной темы и умение применить их при решении соответствующих задач;

представленный отчет по лабораторной работе соответствует требованиям п. 8.

73

Контрольные вопросы

1.Что такое «цикл»?

2.Какие виды циклов есть в Паскале?

3.Чем отличается цикл с предусловием от цикла с постусловием?

4.Сколько раз минимум может выполниться цикл с предусловием?

5.Сколько раз минимум может выполниться цикл с постусловием?

6.Какой тип переменной используется для цикла с параметром?

7.Какая форма цикла с параметром применяется для цикла «от большего к меньшему значению»?

8.Какой тип должно иметь условие для цикла с постусловием?

9. Каков шаг изменения переменной-счетчика в цикле

спараметром?

10.Для решения каких задач применяется цикл с параметром?

11.Для решения каких задач применяется цикл с предусловием?

12.Для решения каких задач применяется цикл с постусловием?

74

Лабораторная работа № 4

МАССИВЫ ДАННЫХ И ИХ ПРИМЕНЕНИЕ В TURBO PASCAL

1. Цель работы

Изучить способы обработки массивов данных в языке программирования Pascal.

2. Задачи работы

Овладеть основными методами работы с одномерными и двумерными массивами данных на языке; изучить некоторые алгоритмы обработки массивов данных.

3. Теоретическая часть

3.1. Основные сведения о массивах

Массив – это группа элементов одного типа, объединенных общим именем хранящихся в последовательных ячейках памяти. Каждая ячейка содержит элемент массива. Порядковый номер элемента массива называется индексом этого элемента.

Массивы, элементы которых однозначно определяются одним индексом, называются одномерными.

В языке Pascal нет ограничения на число элементов в массиве (т.е. на его размерность), но суммарная длина любого из массивов во внутреннем представлении не должна превышать 65520 байт.

3.2. Описание одномерных массивов на языке Pascal

Язык Pascal допускает описание одномерных массивов в программах следующими способами.

Способ 1:

Сначала в разделе описания типов программы задается имя типа следующим образом:

TYPE <Имя_типа_массива>=ARRAY [<Диапазон_индексов>]

OF <Тип>;

где TYPE – служебное слово, используемое для создания пользовательского типа данных;

75

ARRAY OF – служебные слова для описания массивов («Массив … из»);

<Имя_типа_массива> – задаваемое пользователем имя типа массива (требования к именам типов совпадают с требованиями к именам переменных);

<Диапазон_индексов> – диапазон изменения индексов массива. В качестве данного диапазона может выступить любой порядковый тип, кроме LONGINT. Чаще всего используют тип-диапазон, в котором задают границы изменения индексов;

<Тип> – тип элементов массива, например, REAL, INTEGER, CHAR и др.

После описания типа массива следует описать сам массив в разделе описания переменных. Полный вариант описания следующий:

TYPE KAR =ARRAY [1..10] OF INTEGER;

VAR REZ: KAR;

В данном примере «KAR» – имя типа, а «REZ» –имя собственно массива.

Способ 2.

Описание массива происходит непосредственно в разделе описания переменных:

VAR REZ: ARRAY [1..10] OF INTEGER;

Обращение к отдельному элементу массива производится при помощи указания имени всего массива и в квадратных скобках – индекса конкретного элемента. Например:

R[10] – элемент массива R с индексом 10.

Одномерные массивы также иногда называются векторами. Как правило, предполагается, что диапазон индексов вектора начинается с 1. Например, если задан вектор V из 5 чисел (4, 2, 1, -7, 8), то первый элемент вектора равен 4 (т.е. V[1]=4), второй элемент вектора равен 2, третий элемент вектора равен 1 и т.д.

3.2.1. Ввод элементов массива. Написание программ с использованием массивов необходимо начинать с ввода значений элементов массива. Для этого необходимо последовательно изменять значение индекса, начиная с первого до последнего, и вводить соответствующий элемент. Для реализации этих действий удобно

76

использовать цикл с заданным числом повторений (FOR…), где параметром цикла будет выступать переменная – индекс массива. Значения элементов могут быть введены с клавиатуры или определены с помощью оператора присваивания.

Пример фрагмента программы ввода элементов массива пользователем с клавиатуры:

Var A : array [1..10] of integer ;

I : byte ; {переменная I вводится как индекс массива} Begin

For i:=1 to 10 do begin

Write(‘введите [‘,I,’]-элемент массива’;

Readln (a[i]); {ввод i- го элемента производится с клавиатуры}

end;

Для заполнения массива случайными числами необходимо воспользоваться процедурой Randomize и функцией Random (N). Функция random(n) служит для задания случайных целых чисел из диапазона 0 ≤ x ≤ n-1.

Пример фрагмента программы заполнения массива случайными числами:

Var A: array [1..10] of integer;

I: byte ; {переменная I вводится как индекс массива}

Begin

Randomize; {вызов процедуры генерации случайных чисел} For i :=1 to 10 do

A[i]:= random (20); {i -му элементу массива присваивается «случайное» целое число в диапазоне от 0 до 19 включительно, число

20не присваивается}

3.2.2.Вывод элементов массива. Вывод массива осуществляется также поэлементно, с помощью оператора цикла, где параметром выступает индекс массива, принимая последовательно все значения от первого до последнего.

77

Пример фрагмента программы вывода массива:

Var A: array [1..10] of integer;

I: byte ; {переменная I вводится как индекс массива}

Begin

For i :=1 to 10 do

Write ( a [ i ],’ ‘); {вывод массива осуществляется в строку, после каждого элемента печатается три пробела}.

На экране в результате выполнения данного фрагмента программы будут следующие значения:

2 4 1 -7 ……и т.д.

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

Пример программы вывода массива Паскаля «столбиком»:

Var A: array [1..10] of integer;

I : byte ; {переменная I вводится как индекс массива}

Begin

For i:=1 to 10 do

Writeln (‘a[‘, i,’]=’, a[i]); { вывод элементов массива в столбик } На экране в результате выполнения данного фрагмента

программы будут следующие значения:

a [1]=2 a [2]=4

a [3]=1 и т.д.

3.3. Описание двумерных массивов на языке Pascal

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

78

Например, в качестве двумерного массива можно представить оценки из аттестационной ведомости студентов, где каждая оценка показывает знания некоторого студента по определенному предмету:

Ф.И.О.

Математика

Информатика

Физика

Химия

Андреев А.Л.

5

5

4

5

Биктимиров С.Р.

3

4

3

2

Симонова В.П.

4

3

4

3

Двумерные массивы, в которых диапазоны индексов начинаются с 1, также называются иногда матрицами. Размерность каждой матрицы определяется как MxN, где М – число строк в матрице, N – число столбцов.

Например, в предложенной выше матрице оценок из трех строк и четырех столбцов элемент A[3, 1]=4, A[1, 2]=5, A[3, 2]=3, A[2, 4]=2.

Первый индекс элемента матрицы характеризует номер строки матрицы, в которой расположен элемент, второй индекс – номер столбца.

Если число строк матрицы равняется числу столбцов, то матрицы данного типа называются квадратными. Элементы квадратной матрицы вида B[1,1], B[2,2], B[3,3]… составляют главную диагональ матрицы.

Описание типов двумерных массивов в языке Pascal осуществляется аналогично описанию типов одномерных массивов с добавлением диапазона изменения второго индекса, например:

TYPE MATR=ARRAY[1..4, 1..5] OF INTEGER;

TYPE T=ARRAY[0..10, 2000..2004] OF REAL;

Переменные, относящиеся к типу массива, должны быть соответствующим образом объявлены в разделе описания переменных, например:

VAR А: MATR;

VAR B, C, D: T;

или описание массива происходит непосредственно в разделе описания переменных:

VAR N: ARRAY [1..5, 1..10] OF INTEGER;

79