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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



ПРОГРАММИРОВАНИЕ

 

Методические указания

к выполнению лабораторных работ по дисциплине «Программирование»

для студентов направления 230100.62 «Информатика и вычислительная техника»

всех форм обучения

 


 

Сарапул

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

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

 

Цель: получить практические навыки создания программ с использование стандартных функций модуля CRT.

End.

 

Функции для работы с клавиатурой.

Функция KeyPressed возвращает true, если нажата какая-либо клавиша, и false – в противном случае.

Функция ReadKey считывает символ с клавиатуры и возвращает его значение типа char.

 

Управление звуком.

Для создания звуковых эффектов в Турбо Паскале используют процедуры SOUND, NOSOUND и DELAY модуля CRT.

Процедура SOUND (I: word) – активизирует звуковые средства персонального компьютера. Целочисленное значение I указывает частоту звучания звука в герцах. Звук указанной частоты будет звучать до тех пор, пока не будет отменен процедурой nosound.

Процедура NOSOUND – отмена звука. Отменяет звуковой режим, заданный процедурой sound.

Процедура DELAY (time:word) задерживает выполнгение программы на время time (в миллисекундах).

С помощью указанных процедур и операторов цикла можно создать различные звуковые эффекты. Для этого используется набор частот, соответствующие нотам различных октав (табл. 3).

Для использования в процедуре sound все указанные в таблице значения частот округляются.

Табл. 3 Частота звучания нот

 

Нота Большая октава Малая октава Первая октава Вторая октава
До 130,81 216,63 526,25 1046,50
Ре 146,83 293,66 587,33 1174,07
Ми 164,81 329,63 659,26 1318,05
Фа 174,61 349,23 698,46 1396,09
Соль 196,00 392,00 748,99 1568,00
Ля 220,00 440,00 880,00 1760,00
си 246,94 493,88 987,77 1975,00

Пример:

Найти произведение двух матриц. Результат вывести шрифтом разного цвета.

Program First;

Uses Crt;

Const Arr1 :Array [1..2,1..5] of Integer = ((1,2,3,4,5), (6,7,8,9,10));

Var Arr2: Array [1..2,1..5] of Integer;

X,Y: Integer;

Begin

Randomize;

ClrScr;

For Y:=1 to 2 do

For X:=1 to 5 do

Begin

Write ('Введите элементы массива: [',Y,'][',X,']:');

Readln (Arr2[Y,X]);

end;

ClrScr;

For Y:=1 to 2 do

For X:=1 to 5 do

Begin

TextColor (Random (15));

Arr2[Y, X]:= Arr2[Y, X]* Arr1[Y, X];

GotoXY (X* 3+ 2, Y+ 2);

Writeln (Arr2[Y, X]);

end;

ReadKey;

ClrScr;

End.

 

Варианты заданий:

1. На экране несколько раз разными цветами напечатать фразу «ONE MOMENT, PLEASE...», расположив эти надписи лесенкой, сопровождая звуком.

2. Построить семейство разноцветных прямоугольников, расположив по горизонтали, в каждом из которых стоит знак «*».

3. Нарисовать на экране несколько вложенных друг в друга разноцветных прямоугольников.

4. Нарисовать на экране несколько вложенных друг в друга разноцветных прямоугольников, в левом углу каждого вывести номер цвета.

5. Нарисовать на экране прямоугольник и заставить его двигаться по горизонтали, сопровождая движение звуком.

6. Нарисовать на экране прямоугольник и заставить его двигаться по вертикали, сопровождая движение звуком.

7. Нарисовать на экране прямоугольник и заставить его двигаться по диагонали, сопровождая движение звуком.

8. Нарисовать бегущую строку с текстом внизу экрана.

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

10. Создать движущееся по экрану изображение змейки из разноцветных квадратиков.

11. Построить семейство вложенных разноцветных прямоугольников

 
 

 

 


12.Построить семейство разноцветных уменьшающихся прямоугольников

 
 

 


13.Создать падающие сверху вниз снежинки. Цвета выбирать при помощи случайных чисел.

14.Покажите восемь возможных фонов экрана задержкой в 3 секунды. В левый верхний угол экрана выведите номер текущего цвета.

15.Выведите на экран 16 случайных чисел 16-ю разными цветами на черный экран, сопровождая вывод каждого цвета звуком.

16.Выведите 200 символов «*» случайного цвета в точки экрана со случайными координатами. Фон экрана черный.

17.Выведите на предварительно очищенный экран строку «ЯРКИЙ и ТУСКЛЫЙ» т.о., чтобы первое слово было ярким, «и» менее ярким, а последнее слово тусклым.

18.Выведите на предварительно очищенный экран строку «Для продолжения работы нажмите клавишу ENTER» т.о., чтобы последнее слово ярко выделялось по сравнению с другими словами предложения.

19.Постойте два окна по верхним углам экрана и выведите в каждое сообщение «ОКНО 1» и «ОКНО 2». Сделайте паузу в 5 секунд и очистите экран.

20.Постройте «взрывающиеся» (т.е. постепенно увеличивающиеся от минимального к максимально возможному для вашего экрана) окна цветом Magenta.

21.Постройте «сходящиеся» (т.е. постепенно уменьшающиеся от максимально возможного к строке толщиной 1 символ) окна цветом Magenta.

22.Напишите программу, которая вводит в цикле целые числа и если число превышает 100, подает звуковой сигнал. Выход из цикла – число 99. Звуковой сигнал написать при помощи процедуры.

23.Напишите программу, которая генерирует 100 целых случайных чисел в диапазоне 1...300. Если случайное число попало в диапазон 60...100, подайте звуковой сигнал, помощью процедуры подачи звука и выведите это число на экран.

24.Напишите программу, в которой вывод символов строки сопровождается звуковым сигналом. Формирование сигнала оформите в виде процедуры.

25.Постройте два окна (цветами Blue и Green) и подпишите их «ЧЕТНЫЕ», «НЕЧЕТНЫЕ» желтым цветом. С клавиатуры в цикле в последней строке вводите цифры от 1 до 9. Если число четное, выводите его цветом LightRed в окно с надписью «ЧЕТНЫЕ», если число нечетное, выводите его в другое окно. Выход из цикла – 99.

26.Исследуйте датчик случайных чисел. Для этого сгенерируйте 5000 случайных чисел и подсчитайте число четных и нечетных чисел. Если число четных чисел превышает 2500, подайте один звуковой сигнал, если количество нечетных чисел превысит 2500, подайте три сигнала.

27.напишите программу ввода символов с клавиатуры, чтоб ввод каждого символа сопровождался случайным звуком. Выход из программы – ввод символа «!».

28.Напишите программу, которая выводит в окне цветом LightGreen и координатами 30,10, 20, 15 заставку программы «БАЗА ДАННЫХ ОТДЕЛА КАДРОВ» цветом White. Вывод каждой буквы сопроводите коротким звуковым сигналом.

29.Напишите программу, которая 3 раза проигрывает гамму от До до СИ в обратном порядке, используя ноты До, Ре, Ми, Фа, Соль, Ля, Си с частотами соответственно 262, 294, 330, 349, 292, 440, 494.

30.Разработайте программу – модель датчика-анализатора температуры. В качестве источника температуры возьмите случайное число, в диапазоне от 0 до 300 сто раз. Выполните анализ диапазонов, 0...100, 101...200, 201...300. В первом случае выдайте сообщение «НОРМА», во втором случае – «ПРЕВЫШЕНИЕ НОРМЫ», в третьем – сообщение «ТРЕВОГА» и один звуковой сигнал.

Содержание отчета

1. Титульный лист.

2. Постановка задачи.

3. Краткие теоретические сведения.

4. Программный код с комментариями.

5. Результаты работы программы в виде скриншота.

6. Выводы.

 

 

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

Содержание отчета

1. Титульный лист.

2. Постановка задачи.

3. Краткие теоретические сведения.

4. Программный код с комментариями.

5. Результаты работы программы в виде скриншота.

6. Выводы.

 

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

TNEN

BEGIN Х: = SQRT (X);

У: = SQRT (У);

END;

WRITE (‘ Х= ‘, Х:2:2,’, У= ‘, У:2:2);

 

В данном примере часть ELSE отсутствует т.е., если условие не выполняется, то значения переменных Х и У остаются прежними.

Обратите внимание на то, как выглядит логическое условие. Наличие скобок обусловлено тем, что операции отношения имеют приоритет ниже, чем логическая операция AND, но должны быть выполнены раньше ее. Поэтому выражения Х> 0 и У> 0 находятся в круглых скобках.

В частях THEN и ELSE могут находиться любые операторы, в том числе и условные. Бывает затруднительно определить, к какому именно оператору IF относится данная часть ELSE. Здесь действует следующее правило: компилятор связывает часть ELSE с ближайшим, еще не имеющим части ELSE, оператором IF. Исключение составляет ситуация, когда в части THEN стоит блок операторов.

Например, во фрагменте:

 

IF Х>0 THEN

BEGIN IF У>0

THEN У: = SQRT (У);

END

ELSE У: = У+Х;

 

часть ELSE относится к первому оператору IF.

 

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

 

VAR YEAR, NUM: INTEGER;

BEGIN

READ (YEAR);

NUM: = YEAR MOD 12;

IF NUM = 0

THEN WRITE (‘ Обезьяна ‘);

IF NUM = 1

THEN WRITE (' Петух ‘);

IF NUM = 2

THEN WRITE ('Собака ‘);

IF NUM = 3

THEN WRITE (' Кабан ‘);

IF NUM = 4

THEN WRITE (‘ Крыса’);

IF NUM = 5

THEN WRITE (' Бык');

IF NUM = 6

THEN WRITE (' Тигр ‘);

IF NUM = 7

THEN WRITE (' Кролик’);

IF NUM = 8

THEN WRITE ('Дракон’);

IF NUM = 9

THEN WRITE (' Змея’);

IF NUM = 10

THEN WRITE ('Лошадь’);

IF NUM = 11

THEN WRITE ('Овца ');

END.

 

Однако эта программа неудобна для восприятия и модификации. В аналогичной ситуации лучше воспользоваться оператором выбора CASE.

 

Общий вид оператора выбора:

 

CASE <выражение> OF

<параметр 1>: <оператор 1>;

<параметр 2>: <оператор 2>;

.

.

<параметр N >: <оператор N>;

ELSE <оператор N + 1>

END;

 

Если при выборе альтернативы необходимо выполнение нескольких операторов, то нужно заключить их в функциональные скобки, т.е. использовать составной оператор. Конструкция ELSE необязательна и может быть опущена.

При использовании оператора CASE можно указывать диапазон допустимых значений. Оператор CASE работает следующим образом. Сначала вычисляется значения выражения, затем выполняется тот оператор (или группа операторов), параметр выбора которого равен текущему значению выражения. Если ни один из параметров не равен текущему значению выражения, выполняется оператор, стоящий за словом ELSE.

 

Тип параметров должен совпадать с типом выражения.

 

С помощью оператора CASE можно следующим образом переписать серию условных операторов IF из приведенной выше программы:

 

CASE NUM OF

0: WRITE ('Обезьяна’);

1: WRITE ('Петух');

2: WRITE ('Собака’);

3: WRITE ('Кабан');

4: WRITE ('Крыса’);

5: WRITE ('Бык');

6: WRITE ('Тигр’);

7: WRITE ('Кролик’);

8: WRITE ('Дракон');

9: WRITE ('Змея’);

10: WRITE ('Лошадь’);

11: WRITE ('Овца);

END;

 

 

Передача управления

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

Общий вид оператора:

 

GOTO <метка>;

 

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

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

В современных версиях Паскаля для передачи управления чаще используются стандартные процедуры EXIT, HALT и, начиная с версии 7.0, процедуры BREAK и CONTINUE.

Процедура EXIT осуществляет выход из блока (цикла или подпрограммы). При использовании ее в основной программе вне цикла она осуществляет выход в операционную систему.

Процедура HALT выполняет выход в операционную систему.

Процедура BREAK осуществляет выход из цикла. Процедура CONTINUE осуществляет переход к следующей интеграции цикла, даже если процедура еще не завершена.

Процедуры BREAK и CONTINUE можно применять только внутри циклов.

 

Варианты заданий:

1. Наибольшее из 3-х различных значений переменных вещественного типа Х, У, Z уменьшить на 0.3.

2. Вычислить:

3. 3.Вычислить:

D = max (A+С, B2, C+В);

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

5. Вычислить:

6. Вычислить:

 

7. Вычислить:

8. Даны 3 целых числа. Найти среднее из них. Средним назовем число, которое больше наименьшего из данных чисел, но меньше наибольшего.

9. Вычислить значение переменной d=a+в, если а – нечетное, и d=a×в, если а –четное, где а и в целые числа.

10. Найти произведение двух наибольших из трех введенных с клавиатуры чисел.

11. Вычислить:

К = МАХ (а+в, в·с, в2)

12.Вычислить значение с=а+в, если а – четное и с=а*в, если а – нечетное.

13.Даны Х # У. Меньшее из этих двух чисел заменить их полусуммой, а большее – их удвоенным произведением.

14.Если целое число М делится нацело на целое число N, то вывести частное от деления, иначе вывести сообщение «М на N не делится».

15.Найти:

16. Найти:

17. Даны целые числа А, В, С. Если А ≤ В ≤ С, то все числа заменить их квадратами, если А > В > С, то каждое число заменить наибольшим из них, в противном случае сменить знак каждого числа.

18. Составить программу нахождения произведения двух наибольших из трех введенных с клавиатуры чисел.

19. Составьте программу, которая из трех введенных с клавиатуры чисел возводит в квадрат положительные, а отрицательные оставляет без изменения.

20. Составьте программу вычисления выражения:

МАХ (Х+У+Z, X·Y·Z)+3

21. Составьте программу вычисления выражения:

MIN (X2 +Y2, Y2 + Z2, X2+Z2) – 4

22. Составьте программу вычисления выражения:

MAX (X·Y, Y·Z, X·Z) +20

23. Составьте программу вычисления выражения:

MIN (X2, Y·Z, Z2) ·15

24. Составьте программу вычисления выражения:

MAX (X·Z-Y, Z·Y-X, X·Y-Z) + 10

25. Составьте программу вычисления выражения:

MIN (X·Z·Y, Y2, Z2) ·X·Z·Y

26.Составьте программу, заменяющую большее из двух данных чисел модулем суммы, а меньшее – модулем полуразности этих чисел.

27. Составьте программу, заменяющую большее из двух данных чисел модулем произведения, а меньшее – модулем разности этих чисел.

28. Составьте программу, заменяющую большее из двух данных чисел удвоенным произведением, а меньшее – модулем полусуммы этих чисел.

29.Составьте программу расположения трех чисел в порядке убывания.

30. Составьте программу расположения трех чисел в порядке возрастания.

Содержание отчета

1. Титульный лист.

2. Постановка задачи.

3. Краткие теоретические сведения.

4. Программный код с комментариями.

5. Результаты работы программы в виде скриншота.

6. Выводы.

 

 

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

Var

I: Integer;

F: Real;

Begin

Writeln (‘ Температура ‘);

For I := 15 To 30 Do { Заголовок цикла с параметром }

Begin { Начало тела цикла }

F:=I*1.8+32;

Writeln (‘ По Цельсию= ‘,I,’ по Фарингейту= ‘, F:5:2)

End; { Конец тела цикла }

End.

 

В блоке описания переменных описаны параметр цикла I типа Integer и переменная F – температура по Фаренгейту типа Real. Переменная I, являясь параметром цикла, также является переменной, хранящей целочисленные значения температуры по шкале Цельсия.

Цикл выполняется следующим образом.

При первом обращении к оператору For вычисляются значения начального (15) и конечного (30) параметров цикла, и параметру цикла I присваивается начальное значение 15.

Затем циклически выполняется следующее:

1. Проверяется условие I<=30.

2. Если оно соблюдается, то выполняется составной оператор в теле цикла, т.е. рассчитывается значение выражения I*1.8.+32, затем оно присваивается переменной F и на экран выводится сообщение:

‘По Цельсию= ’, I, ‘ по Фаренгейту= ’, F:5:2

Если условие I<=30 не соблюдается, т.е. как только I становится>30, оператор цикла не выполняется, а управление в программе передается за пределы оператора For, в нашем примере на оператор End;. Программа завершает работу.

3. Значение параметра цикла I увеличивается на единицу, и управление передается в заголовок цикла For для проверки условия.

Далее цикл повторяется с п.1.

Рассмотрим пример программы с применением оператора повтора For с убыванием значения управляющей переменной цикла на - 1.

Программа Exp_2 печатает на экране символы стандартного американского кода обмена информацией (ASCII) в порядке убывания кода.

 

Program Exp_2;

Var

A: Integer;

Begin

For A := 255 Downto 0 Do { Цикл с убыванием параметра }

Writeln (‘ код символа = ‘, A,’ символ = ‘, Chr (A));

End.

 

Если число повторений оператора (составного оператора) заранее неизвестно, а задано лишь условие его повторения (или окончания), используются операторы While или Repeat. Оператор While (пока) часто называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора.

 

Общая форма записи оператора While:

 

While < условие продолжение повторений > Do < тело цикла >;

 

Условие – булевское выражение, тело цикла – простой или составной оператор. Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен False, происходит выход из цикла и переход к первому после While оператору. Примером работы While может служить программа Exp_3, которая производит суммирование 10 произвольно введенных целых чисел.

 

Program Exp_3;

Const Limit=10;

Var I, A, Sum: Integer;

Begin

I:=0; { Счетчик чисел }

Sum:=0; { Сумма чисел }

While (I< Limit) Do { Условие выполнения цикла}

Begin

I:= I + 1;

Write (‘ Введите ‘, I, ‘ – ое целое число: ‘);

Readln (A); { Ввод очередного числа с клавиатуры }

Sum:= Sum + А;

End;

Writeln (‘ Сумма введенных чисел равна ‘, Sum);

End.

 

В данном примере в разделе описания констант описана константа Limit=10, задающая ограничение на количество вводимых чисел. В разделе описания переменных описаны переменные I, A, Sum целочисленного типа.

В начале выполнения программы обнуляются значения счетчика введенных чисел I и их суммы.

Затем выполняются цикл ввода десяти чисел и их суммирование. Вначале оператор условия While проверяет условие I<Limit. Если условие истинно, то выполняется составной оператор в теле цикла:

 

Begin

I:= I +1;

Write (‘Введите ‘, I, ‘ – ое целое число: ‘);

Readln (A);

Sum:= Sum + А;

End;

 

в котором вводится значение очередного числа, и на это значение увеличивается значение суммы. После этого управление в программе вновь передается оператору цикла While, опять проверяется условие I<Limit. Если условие истинно, то выполняется составной оператор и т.д., пока значение переменной I будет меньше 10.

Как только значение I станет равно 10 и условие I<Limit не будет соблюдено, выполнение цикла завершится, а управление в программе будет передано оператору, находящийся за словом End, т.е. первый оператор за границей While. Это вызов процедуры Writeln, которая выведет сообщение ‘Сумма введенных чисел равна ‘, и напечатает значение переменной Sum.

 

Оператор повтора Repeat аналогичен оператору While, но отличается от него, во-первых, тем, что условие проверяется после очередного выполнения операторов тела цикла и таким образом гарантируется хотя бы однократное выполнение цикла, а во-вторых, тем, что критерием прекращения цикла является равенство выражения константе True. Цикл Repeat часто называют циклом с постусловием, или циклом “До”, так как он прекращает выполняться, как только значение выражения условия, записанного после слова Until, равно True.

Оператор Repeat состоит из заголовка Repeat, тела и условия окончания Until. Общая форма оператора повтора Repeat:

Repeat

< оператор >;

...

< оператор >;

Until < условия окончания цикла >;

 

Операторы, заключенные между словами Repeat и Until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Поэтому цикл, организованный с помощью оператора Repeat, в любом случае выполняется хотя бы один раз. Если результат булевского выражения равен False, то тело цикла активизируется еще раз, если результат True, происходит выход из цикла.

Оператор повтора Repeat полезен при разработке программ, обрабатывающих ввод с клавиатуры или из файла (вопросы файлового ввода-вывода будут рассмотрены позже).

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

 

Program Exp_4;

Var

X: Integer;

Sum: Real;

Begin

Sum:= 0;

Repeat { Повторять }

Write (‘ X= ‘); { Начало тела цикла }

Readln (X); { Считать очередное значение Х с клавиатуры }

If X <> 999 Then

Sum:= Sum + X;

Until X = 999; { Условие окончания цикла }

Writeln (‘ Сумма введенных чисел = ‘,Sum: 3: 3);

End.

 

В данном примере в разделе описания переменных описана переменная Х целочисленного типа Integer и Sum вещественного типа Real.

В начале выполнения программы обнуляется значение суммы чисел. Затем зарезервированным словом Repeat объявляется цикл, после чего следуют операторы тела цикла, которые выводят на экран запрос ‘ Значение Х= ‘, считывают введенное с клавиатуры значение Х. Оператор If проверяет его на неравенство числу 999 и, если оно не равно 999, увеличивает значение Sum на значение переменной Х. В конце цикла оператор Until Х=999 проверяет условие окончания цикла. Если значение выражения Х=999 истинно, то цикл завершится, а управление в программе будет передано на оператор, находящийся за словом Until, т.е. первый оператор за границей цикла Repeat. Это вызов процедуры Writeln, которая выводит сообщение ‘ Сумма введенных чисел равна ‘ и напечатает значение переменной Sum.

 

Варианты заданий:

I.

1. Найти сумму цифр целого числа.

2. Найти произведение цифр целого числа.

3. Найти количество нечетных цифр целого числа.

4. Найти первую цифру числа.

5. Поменять порядок цифр числа на обратный. Например, было 12345, стало 54321.

6. Найти количество четных цифр целого положительного числа.

7. Сколько цифр в данном числе больше числа 5?

8. Найти самую большую цифру целого положительного числа.

9. Сколько раз цифра 5 встречается в целом числе.

10. Найти количество нечетных цифр в целом числе.

11. Найти сумму четных цифр целого числа.

12. Найти произведение нечетных цифр целого цисла.

13. Найти самую маленькую цифру целого числа.

14. Верно ли, что в данном числе нет цифры 6?

15. Верно ли, что сумма цифр данного числа равна 20?

16. Найти количество цифр данного числа, больших А.

17. Сколько раз последняя цифра встречается в данном числе.

18. Верно ли, что последняя цифра данного числа нечетная?

19. Сколько раз встречается в данном числе цифра 8?

20. Сколько цифр в данном числе меньше цифры 5?

21. Верно ли, что сумма цифр данного числа меньше 30?

22. Сколько цифр в данном числе меньше цифры 6.

23. Сколько раз в данном числе встречается цифра 3.

24. Найти сумму нечетных цифр целого числа.

25. Найти произведение четных цифр целого числа.

26. Составить программу, проверяющую, является ли заданное натуральное число палиндромом, то есть таким, десятичная запись которого читается одинаково слева направо и справа налево, например, числа 2222, 1331, 6006.

II.

1.Составьте программу вывода на экран всех трехзначных чисел, кратных 7.

2.Составьте программу вычисления суммы всех трехзначных чисел, кратных 13.

3.Составьте программу вычисления произведения всех трехзначных чисел, кратных 17.

4.Найти количество делителей натурального числа. Сколько из них кратных?

5.Найти сумму четных делителей натурального числа.

6.Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N.

7.Найти сумму нечетных делителей натурального числа.

8.Составьте программу вычисления выражения для данного натурального числа N: 4 + 8 + 12 +... + 4 · N.

9.Составьте программу вычисления выражения для данного натурального числа N: 6 + 12 + 18 +... + 6 · N.

10.Составьте программу вычисления выражения для данного натурального числа N: 12 + 22 + 32 +... + N2.

11.Составьте программу вычисления выражения для данного натурального числа N: 13 + 23 + 33 +... + N3.

12.Составьте программу вычисления выражения

у = (2n - 1)!! = 1· 3· 5 ·...· (2n - 1), n>0

13.Составьте программу вычисления выражения

y = (2n)!! = 2 · 4 ·6·... · (2n), n>0

14. Составьте программу вычисления выражения

y = cosX + cosX2 + cosX3 +... + cosX30

15.Составьте программу вычисления выражения

y = 1! + 2! + 3! +... + n! n>0

16.Составьте программу вычисления выражения

y = ex = 1 + x / 1! + x2 / 2! +... + xn / n!

17. Составьте программу вычисления выражения

y = shX = x + x3 / 3! + x5 / 5! +... + x2n+1 / (2n +1)!

18. Составьте программу вычисления выражения

y = cosX = 1 – x2 / 2! + x4 / 4! -... + (-1)nx2n / (2n)!

19. Составьте программу вычисления выражения

y = ln (1 + x) = x – x2 / 2 + x3 / 3 -... + (-1)n-1xn / n

20. Составьте программу вычисления выражения

y = arctgX = x – x3 / 3 + x5 / 5 -... + (-1)nx2n+1 / (2n +1)

21. Составьте программу вычисления выражения

y = 1 + x / 2 + x2 / 3 + x3 / 4 +... + xn-1 / n

22. Составьте программу вычисления выражения

y = 1 + x2 / 2! – x4 / 3! + x6 /4! -...

23. Составьте программу вычисления выражения

y = 1 – x / (x+1) + x3 / (x +1)2 – x5 / (x +1)3 +...

24.Составьте программу вычисления выражения первых 100 сомножителей:

y = 1 / 2 · 1 / 4 · 1 / 8 · 1 / 16 ·...

25. Составьте программу вычисления выражения

y = 1 / 10 · 1 /15 · 1 / 20 ·... · 1 /100

26. Составьте программу вычисления выражения

y = (1 + 1 / 12) · (1 + 1 / 22) · (1 + 1 / 32) ·... · (1 + 1/102)

27. Составьте программу вычисления выражения

y = (x - 2) · (x – 4) · (x – 8) ·... · (x – 64)

28. Составьте программу вычисления выражения

y = 1 / 7 + 2 / 9 + 3 / 11 + 4 / 13 +... +101 /...

29. Составьте программу вычисления выражения

y = 2 / 3 · 3 / 5 · 4 / 7 · 5 / 9 ·... · 11 /...

30. Составьте программу вычисления выражения

y = ex = 1 + x / 1! + x2 / 2! +... + xn / n!

 

III.

1. Составьте программу вычисления выражения

2. Составьте программу вычисления выражения

 

3. Составьте программу вычисления выражения

 

4. Составьте программу вычисления выражения

 

5. Составьте программу вычисления выражения

 

6. Составьте программу вычисления выражения

 

7. Составьте программу вычисления выражения

 

8. Составьте программу вычисления выражения

 

 

9. Составьте программу вычисления выражения

 

10. Составьте программу вычисления выражения

 

11. Составьте программу вычисления выражения

 

12. Составьте программу вычисления выражения

 

13. Составьте программу вычисления выражения

 

14. Составьте программу вычисления выражения

 

15. Составьте программу вычисления выражения

 

 

16.Составьте программу вычисления выражения

 

17. Составьте программу вычисления выражения

18. Составьте программу вычисления выражения

 

19. Составьте программу вычисления выражения

 

20. Составьте программу вычисления выражения

 

21. Составьте программу вычисления выражения

 

22. Составьте программу вычисления выражения

 

23. Составьте программу вычисления выражения

 

24. Составьте программу вычисления выражения

 

25. Составьте программу вычисления выражения

 

 

Содержание отчета

1. Титульный лист.

2. Постановка задачи.

3. Краткие теоретические сведения.

4. Программный код с комментариями.

5. Результаты работы программы в виде скриншота.

6. Выводы.

 

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

Type

<имя типа> = Array [< тип индекса >] of < тип компонента >;

Var

< идентификатор,... >: < имя типа >;

 

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

Var

< идентификатор,... >: Array [< тип индекса> ] of < тип компонента >;

 

Пример:

Type

Klass = (K1, K2, K3, K4);

Znak = Array [1..255] of char;

Var

M1: Znak; {тип Znak предварительно описан в разделе типов}

M2: Array [1..60] of Integer; { прямое описание массива M2 }

M3: Array [1..4] of Klass;

Mas: Array [1..4] of Integer;

Если в качестве базового типа взят другой массив, образуется структура, которую принято называть многомерным массивом.

 

Пример:

Type

Vector = Array[ 1..4] of Integer;

Massiv = Array [1..4] of Vector;

Var

Matr: Massiv;

 

Ту же структуру можно получить, используя другую форму записи:

 

Var

Matr: Array [1..4,1..4] of Integer;

 

Если в такой форме описания массива задан индекс, массив называется одномерным, если два индекса – двумерным, если n индексов – n-мерным. Одномерный массив соответствует понятию линейной таблицы (вектора), двумерный – понятию прямоугольной таблицы (матрицы, набору векторов). Размерность ограничена только объемом памяти конкретного компьютера. Одномерные массивы обычно используются для представления векторов, а двумерные – для представления матриц.

 

Пример:

Var

VectorZ: array [1..40] of real; {Одномерный массив из 40 элементов}

MatrU: array [ 1..8, 1..8] of byte; { Двумерный массив 8´8 элементов} Trilf: array [1..4, 1..5, 1..8] of integer; { Трехмерный массив}

Для описания можно использовать предварительно определенные константы:

Const

G1 = 4; G2 = 6;

Var

MasY: Array [1..G1, 1..G2] of real;

 

Элементы массива располагаются в памяти последовательно. Элементы с меньшими значениями индекса хранятся в более низких адресах памяти. Многомерные массивы располагаются таким образом, что самый правый индекс возрастает самым первым.

Например, если имеется массив A: Array [1..5,1..5] of Integer; то в памяти элементы массива будут размещены по возрастанию адресов:

A[1,1]

A[1,2]

...

A[1,5]

A[2,1]

A[2,2]

...

A[5,5]

 

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



Поделиться:


Последнее изменение этой страницы: 2017-02-09; просмотров: 278; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.36.30 (0.47 с.)