Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа П2Б,Г.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.09 Mб
Скачать

Лабораторная работа №1 Решение задачи на работу с целым типом данных.

Цель работы: Ознакомление с процедурами ввода-вывода данных и с различными типами данных

Теория:

Числа, не имеющие дробной части в Паскале представляются целым типом. Целый тип описывается служебным словом INTEGER. Целые числа задаются в диапазоне от -32768 до +32767 и занимают два байта памяти.

Формат описания:

VAR <имя переменной>: INTEGER;

Задание1:

1.Вычислить значения выражений:

а)20 div 4; д)20 mod 4;

б)20 div 3; е)20 mod 3;

в)24 div 7; ж)24 mod 7;

г)56 div 8; з)56 mod 8;

2.Указать порядок выполнения операций в

выражении:

а) -а mod b + a div b*c;

б) а mod b - a div b/c;

3.Записать на Паскале следующие формулы:

а)(1+х) ; д)sin 8;

б) ; е)arctg 7;

в)tgx; ж) ;

г) ; з) ;

4.Вычислить значения выражений:

а)trunc(20.4); д)round(243.6);

б)trunc(320.64); е)round(502.8);

в)trunc(780.56); ж)round(314.60);

г)trunc(900.784); з)round(521.16);

5.Определить тип(целый или вещественный)

выражения:

а)1+0.0; д)20/5;

б)sqr(5.0); е)sqrt(36);

в)succ(-2); ж)round(314.60);

г)trunc(-900.7); з)sin(0);

6.Если у - вещественная переменная, а n – целая,

то какие из следующих операторов присваивания правильные, а какие нет?

а)у:=n+1; д)n:=sqr(sqr(n));

б)n:=y-1; е)y:=trunc(y);

в)n:=6.0; ж)n:=n/6;

г)n:=y div 4; з)n:=n*sqrt(9);

7.Вычислить значения выражений:

а)3*7 div 2 mod 7/3-trunc(1);

б)succ(round(5/2)-pred(3))+1;

8.Присвоит целой переменной h первую цифру из

дробной части числа х(если х=32.675,то h=6)

9.Дано вещественное число х

а) выделить его целую часть;

б) округлить данное число до n значащих цифр после запятой.

10.Найти остаток деления целого числа а на целое

число в.

Задание2:

1.Записать на Паскале отношение, истинное при выполнении указанного условия и ложные в противном случае:

а)целое k делится на 7 ;

б)уравнение ах2 + bx+с = 0 ( а*0 ) не имеет вещественных корней;

в)точка ( х, у) лежит вне круга радиуса г с центром в точке (1 , 0 );

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

2.Вычислить значение выражений :

а)not odd(n) при n = 0;

б)t and (p mod 3 = 0) при t = true, p = 20; B)(x*y<>0)and(y>x) при х = 2, у = 1;

г)(х = у) or ( у > х ) при х = 2, у = 1;

д)a or (not b ) при а = false , b = true.

3.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

а) 0<х<1;

б) х = max (х, у, z);

в) х = max (х, у, z) (операцию not не использовать );

г) хотя бы одна из логических переменных а и b имеет значение true;

д) обе логические переменные а и b имеют значение true;

4.Вычислить значение выражения: a)true or (1/10>0); б)(1/10<0) or true

5.Объяснить ошибки в следующих записях: а) 1 and 0; б) true + false; в) true<0;

г) not 2 = 5; д) х>0 or у = 4;

е) not not b or or d

6.Указать порядок выполнения операций при вычислении выражения:

а) a not b or not c and d;

б) (x > = 0) or t and odd (x)or(y*y<>4)

7. Вычислить следующие выражения при

а = true и b - false: a) a or b and not a;

б) (a or b) and not a;

в) not a and b ;

r) not ( a and b);

8.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

а)х принадлежит отрезку [0,1];

б)х лежит вне отрезка [0,1];

в)х принадлежит отрезку [2,5] или [-1,1];

г)х лежит вне отрезков [2,5] и [-1,1 ];

д)каждое из чисел х, у, и z положительно;

е)хотя бы одно из чисел х, у и z положительно;

ж) ни одно из чисел х, у и z не является положительным;

9. Вычислить значения выражений:

a) false<true; 6)ord(false)=l;

в) pred(true); г) ord(succ(false))>0 »

10. Вычислить значения выражений: ,

а)not (pred(c) or (ord( с) =1)) при c=true;

б)(p<true)=(q=false) при p =q=true;

в)a and b>a or b при a=false, b=true.

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

  1. Каким служебным словом описывается целый тип данных?

  2. Каким служебным словом описывается вещественный тип данных?

  3. sqrt(36)=?

  4. Формат описания логического типа?

  5. Формат описания символьного типа?

3.Какие переменные могут принимать логические типы данных?

Лабораторная работа №2 Решение задачи на работу с вещественным типом данных.

Числа, имеющие десятичную точку в записи в Паскале представляются вещественным типом, который описывается служебным словом REAL. Вещественные числа задаются в диапазоне от 2.9*10'39 до 1.7*1038 и занимают шесть байтов памяти. Формат описания:

VAR <имя переменной>: REAL;

  1. Построить программу для подсчета общего осадков в мм за 7 дней месяца.

  2. Вычислить все значения функции F= , для x =1

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

  4. Рассчитать и вывести на экран значение функций для =3

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

  6. Вычислить и напечатать значение функции для =-1

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

  8. Вычислить значения функции: для х=–5 и для х=3. Пары функции напечатать.

  9. Рассчитать и вывести на экран значение функций для =3

  10. Вычислить все значения функции F= , для x =1

  11. Вычислить значения функции: для х=–5 и для х=3. Пары функции напечатать.

  12. Рассчитать и вывести на экран значение функций для =3

  13. Вычислить все значения функции F= , для x =1

  1. Вычислить значения функции: для х=–5 и для х=3. Пары функции напечатать.

  2. Рассчитать и вывести на экран значение функций для =3

  3. Вычислить все значения функции F= , для x =1

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

  1. Оператор присваивания?

  1. Запись сложных выражений.

  2. Запись возведения в квадрат.

  3. Запись возведения в степень.

  4. Модуль числа?

Лабораторная работа №3 Решение задачи на ввод, вывод данных.

Цель работы: Ознакомление с процедурами ввода-вывода данных и с различными типами данных

Теория:

Оператор присваивания является одним из основных операторов языка программирования. Имеет следующий формат записи:

<имя переменной>:=<выражение>;

Оператор присваивания помещает значение <выражение> в <имя переменной>. Выражение задает правило вычисления значения переменной. Тип переменной должен совпадать с типом результата вычислений.

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

Read (список переменных);

Readln (список переменных);

Read производит ввод данных, не переводя при этом курсор на следующую строку. Readln производит ввод данных, и переводит при этом курсор на следующую строку.

Для вывода данных используются процедуры вывода:

Write(список выражений);

Writeln(список выражений);

Write производит вывод данных, не переводя курсор на следующую строку, а Writeln переводит курсор

Задание1:

1.Вывести на экран текст «Моя первая программа

на Турбо Паскале», используя 2 операторы ввода

–вывода (Write, Read).

2. Даны 2 действительных числа а и в. Получить их сумму, разность и произведение.

3.Даны 2 действительных, положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел.

4.Вычислить значение функции:

А) f=(x+1)2+3(x+1) при x=3;

В) f=(6x2+3(x3+1)2) при x=4;

C) f=x2(6x2+1)+5(x2+1)2 при x=2;

D) f=x3+3x2+1 при x=4;

E) f=(x+1)2/3+(x3+1)2 при x=5;

F) f=x2/2+(x2/2)2+3 при x=5;

G) f=4x2+2(x4+1)2 при x=4.

5.Вычислить длину окружности, площадь круга и объем шара одного и того же заданного радиуса.

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

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

1. а4 за 2 операции;

2. а6 за 3 операции;

3. а7 за 4 операции;

4. а8 за 3 операции;

5. а9 за 4 операции;

6. а10 за 4 операции;

7. а13 за 5 операции;

8. а15 за 5 операции;

9. а21 за 6 операции;

10. а28 за 6 операции;

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

  1. Оператор присваивания?

  2. Операторы ввода-вывода?

3. Отличие между операторами Read и Readln, Write и Writeln?

Лабораторная работа №4 Решение задачи на условный оператор и оператор выбора

Цель работы: Работа с оператором выбора

Теория:

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

CASE <селектор> OF

Список меток1: оператор1;

Список меток2: оператор2;

……………………………..

Список меток n: операторn;

ELSE оператор n +1;

END;

<селектор>-выражение простого типа, кроме вещественного;

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

Задание:

1. По введенному дню недели определить, рабочий или выходной день.

2. По введенному номеру месяца определить, название месяца.

3. Для целого числа k от 1 до 9 напечатать значение переменной k римскими цифрами.

4. Для целого числа k от 1 до 99 напечатать фразу " мне k лет ", учитывая при этом , что при некоторых значениях k слово " лет " надо заменить на слово " год " или " года ".

5. Для натурального числа k напечатать фразу " мы нашли k грибов в лесу ", согласовав окончание слова " гриб " с числом k.

6. По введенному номеру месяца определить количество дней в месяце (год считать невисокосным).

7. В старояпонском календаре был принять 60-летний цикл, состоявший из пяти 12-летних подциклов. Подциклы обозначались названиями цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1984 год-год зеленой крысы - был началом очередного цикла). Написать программу, которая вводит номер некоторого года нашей эры и печатает его название по старояпонскому календарю.

8.Пусть значения функции f(n) равно количеству букв в записи числа п русскими словами: f(1)=4(один),f(3)=3(три), f(42)=42 (сорок два) и т.п. Напечатать все натуральные числа п, меньшие 100, для которых f(n)=n.

9. По введенному натуральному числу п (п 100), обозначающему количество ворон, вывести надпись «На дереве п ворон», где ворона склоняется соответственно п: «ворон», «ворона», «вороны». В случае и, превышающего 100, вывести надпись «Ветка обломилась».

10. Группу детей, приехавшую в пионерский лагерь, распределяют по отрядам следующим образом:

6-7 лет - 5-й отряд,

7-9 лет - 4-й отряд,

9-11 лет - 3-й отряд,

11-13 лет - 2-й отряд,

13-15 (включительно) - 1-й отряд.

Составить программу, которая по вводимому возрасту определяет приезжающего ребёнка в отряд.

11. Написать программу, которая по значению входного параметра (целое число) определяет значение выходного параметра (строка) по следующей зависимости:

12. Написать программу, которая по набранным баллам (1-100) в результате некоторого тестирования, сообщает полученную оценку:

13. Дано целое положительное число п в диапазоне от 1 до 99. Определить его текстовый эквивалент. Например, при n=124 необходимо вывести «сто двадцать четыре».

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

  1. Оператор выбора, формат оператора выбора

  2. Каким образом работает оператор выбора?

Лабораторная работа №5 Решение задачи на работу с множеством.

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

Теория:

Множества относятся к структурированным типам. Множество- совокупность различных элементов одинакового типа. В отличие от массива порядок перечисления элементов во множестве не имеет значения, и количество элементов заранее не определено. Количество элементов, входящих во множество, может меняться от 0 до 256. Значения множества задаются в квадратных скобках перечислением элементов через запятую.

Например:

[ ]- пустое множество;

[2, 3, 7,11] - множество из целых чисел;

['а', 'с', Т]; - множество из символов;

[1..10] - множество из элемента ограниченного типа;

[k,.2*k] - элемент множества задастся текущим значением переменной k.

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

<имя>:8ЕТ OF <тип компонент>;

<тип компонент>- является базовым типом, может быть простым типом, кроме вещественного.

Множество можно задавать 2-мя способами.

  1. сначала определить в разделе TYPE, затем в разделе VAR

  2. сразу определить в разделе VAR.

Значениями множества может быть только значения базового типа.

Операции над множествами

Для получения новых множественных значений используется 3 операции: объединение, пересечение и разность множеств.

1) Объединение: обозначается знаком «+». Объединением двух множеств является множество, составленное из элементов обоих множеств.

[2,7,3]+[1.7,4,5,2]=[2,7,3,1,4,5]

2) Пересечением двух множеств является множество, состоящее из элементов, одновременно входящих в оба множества. Обозначается знаком «*».

3) Разностью двух множеств является множество, состоящее из элементов 1-го множества, которые не являются элементами второго множества. Обозначается знаком « -.». [2,7,3] -[1,7,4,5,2] =[3]

Задание:

  1. Даны следующие описания переменных:

type строка= pasked array [1..100]of char; Описать функцию счет(в), подсчитывающую общее количество цифр и знаков '+','-' и '*', входящих в строку s.

  1. Дано 100 целых чисел от 1 до 50. Определить, сколько среди них чисел Фибоначчи и сколько чисел, первая значащая цифра в десятичной записи которых-1 или 2.

  2. Даны следующие описания переменных: type месяц = 1..12; Описать функцию числодней (гп), определяющую количество дней в месяце m (не високосного года). Даны следующие описания переменных: type letters= set of 'a'., 'z';

  3. Описать процедуру printfa), печатающую в алфавитном порядке все элементы множества Л, имеющего тип letters.

  4. Даны следующие описания переменных:

const n =10;

type номер= 1 ..п;

матрица = array [номер, номер] of real;

ном - set of номер;

Описать функцию sum(A, si, s2), вычисляющую сумму тех элементов матрицы А, номера строк и столбцов которых принадлежат соответственно непустым множествам si и s2 типа ном.

  1. Даны следующие описания переменных:

type деньнедели = (пн, вт, ср, чт, пт, сб, вс);

рабочийдень = пн..пт;

var wd: деньнедели;

t:boolean;

  1. Требуется переменной е присвоить значение true, если wd-рабочий день, и значение false иначе. Какими из следующих операторов правильно решается эта задача?

    1. t:= wd in рабочийдень;

    2. t:= wd in [рабочийдень];

    3. t:= wd = рабочийдень;

    4. t:= wdin [пн..пт];

    5. t:= [wd]<=[nH..nr];

    6. t:= [wd] - [пн..пт].

  2. He используя дополнительные переменные, поменять местами значения переменных-множеств А и В.

  3. Описать:

а) функцию digits(n), подсчитывающую количество различных (значащих) цифр в десятичной записи натурального числа п;

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

10. Дан текст из строчных латинских букв, за которым следует точка. Напечатать:

а) первые вхождения букв в текст, сохраняя их исходный взаимный порядок;

б) все буквы, входящие в текст не менее двух раз;

в) все буквы, входящие в текст по одному разу.

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

  1. Что такое множество?

  2. Как описываются множества?

  3. Операции над множествами?

Лабораторная работа №6 Решение задачи с применением оператора цикл с параметром и перечисляемый тип.

Цель работы: Ознакомление с перечисляемым и ограниченным типами

Теория:

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

Создаваемый перечисляемый тип определяется в разделе типов TYPE:

<имя типа>=(значение1, значение2, значениеn);

<имя типа>-имя типа, определяемого программистом;

(значение1, значение2, . . . значениеn) являются константами определенного.

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

<мин. значение>. . .<макс. значение>;

Ограниченные типы определяются в разделе TYPE или VAR.

Задание:

1. Если среди чисел sin xn (п=1, 2...,30) есть хотя бы одно отрицательное число, то логической переменной t присвоить значение true, а иначе -значение false.

2. Дано 100 вещественных чисел. Определить, образуют ли они возрастающую последовательность .

3. Дана последовательность из 70 целых чисел. Определить, со скольких отрицательных чисел она начинается.

4. Дано 100 целых чисел. Определить, сколько из них принимает наибольшее значение.

5. Даны целые числа x1,x2,...,x55 вычислить величину

x1(x2+x3)(x4+x5+x6)(x7+x8+x9+x10)...(x+x47+...+x55).

6. Дана последовательность из 100 целых чисел. Определить количество чисел в наиболее длинной подпоследовательности из подряд идущих нулей.

7. Дано 200 вещественных чисел. Определить , сколько из них больше своих "соседей", т.е. предыдущего и последующего чисел.

8. Найти сумму десяти произвольных чисел. Результат отправить в переменную S.

9. Найти минимальное из п отрицательных чисел.

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

11. Ввести п чисел. определить, сколько среди них положительных. Результат отправить в переменную к.

13. Имеются следующие описания:

type месяц=(янв, фев, март, апр, май, июн, июл, авг, сен, окт, ноя, дек);

var m, ml :месяц ;

k:l..maxint;n:1..12;

Присвоить переменной ml:

а)название месяца, следующего за месяцем т (с учетом того, что за декабрем идет январь);

б) название k-гo месяца после месяца m;

14. Имеются следующие описания:

type страна=(Австрия, Болгария, Греция, Италия, Норвегия, Франция, ФРГ);

столица=(Вена, София ,Афины, Рим , Осло, Париж, Бон);

var st: страна; cap: столица;

По значению переменной st (названию страны ) присвоить переменной cap название столицы этой страны.

15. Имеются следующие описания:

var Р:(ада, бейсик, модула2, лисп ,паскаль,пл1, фортран);

A:(ada, basic,modula2,lisp,paskal, pll,fortran);

По Р - русскому названию языка программирования присвоить переменной А английское название.

4. Имеются следующие описания:

type название = (ноль, один, два, три, четыре, пять);

var :d:'0'..'5';

n:название;

По литере -цифре d присвоить переменной п название этой цифры.

16. Имеются следующие описания: type нота = (до, ре, ми, фа, соль, ля, си);

интервал=(секунда, терция, кварта, квинта, секста, септима); var nl,n2: нота; i: интервал;

Определить i-интервал, образованный нотами n1 и n2(n1 n2):секунда-это интервал из двух соседних (по кругу) нот (например, ре и ми, си и до),терция-интервал через ноту (например, фа и ля, си и ре) и т.д. 17 Имеются следующие описания: type сезон = (зима, весна, лето, осень);

месяц = (янв, фев, мар, апр, май, июн, июл, авг, сен, окт,ноя, дек);

var m: месяц; s: сезон; Определить s- сезон, на который приходится месяц т.

18. Имеются следующие описания:

type страна = (ГДР, Куба, Лаос, Монако, Непал, Польша);

континент = (Азия, Америка, Европа);

var s: страна; с: континент;

По s- названию страны определить с- название ее континента.

19. Имеются следующие описания:

type единица = (дециметр, километр, метр, миллиметр, сантиметр);

длина = real;

var s: страна;

р: единица;

Значение переменной х, означающее некоторую длину в единицах p, заменить на величину этой же длины в метрах.

20. Имеются следующие описания: type цвет = (черный, серый, белый); var с: цвет;

Напечатать значение переменной с.

21. Имеются следующие описания: type letter = (a, b, с, d);

var x: letter;

Ввести заданное во входном файле значение типа letter (т. е. а, b, с или d) и присвоить его переменной х.

22. Имеются следующие описания:

type падеж = (им , род, дат, вин, твор, предл);

слово = (степь, боль, тетрадь, дверь);

var w. слово;p: падеж;

Напечатать слово w в падеже р и единственном числе (например, при w=степь и р = твор надо напечатать слово степью).

23. Имеются следующие описания:

type курс = (С, В, Ю, 3,); { север, восток, юг, запад }

приказ = (вперед, вправо, назад, влево );

varKl,K2: курс; ПР: приказ;

Корабль сначала шел по курсу К1, а затем его курс был изменен согласно приказу ПР. Определить К2 - новый курс корабля.

24. Имеются следующие описания: var d:28..31;

m: месяц;

Переменной d присвоить количество дней в месяце т ( год считать невисокосным).

25. Имеются следующие описания: var у: 1901..2000;

m: месяц; d: 1..31;

t: boolean;

Переменной t присвоить значение true, если тройка у, т, d образует правильную дату, и значение false - иначе ( при 31 июня и т.п.).

26. Имеются следующие описания: var d,dl: 1 ..31; m, ml: месяц;

у: 1901..2000;

yl: 1901..2001;

По дате d, т, у определить d1, m1, y1 - дату следующего дня.

27. Имеются следующее описание:

var k: 1. .366; d: 1..31; m: месяц;

а) Определить k - порядковый номер того дня високосного года, который имеет дату d, т;

б) Определить d, т - дату k-гo по счету дня високосного года.

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

  1. Дайте определение перечисляемому и ограниченному типу?

  2. Где описываются эти типы?

  3. Какие операции определены над перечисляемым типом?

Лабораторная работа №7 Решение задачи с применением операторов цикла итерационного типа.

Цель работы: Работа с оператором цикла с предусловием

Теория:

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

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

WHILE <условие> DO <тело цикла>;

Условие-это выражение логического типа.

Цикл с постусловием

REPEAT

Оператор1;

. . .

оператор N

UNTIL <условие>;

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

Задание:

  1. Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить порядковый номер наименьшего из них.

  2. Вводится последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли последовательность возрастающей.

  3. Вводится последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли последовательность закономерной.

  4. Вводится последовательность ненулевых чисел, 0-конец последовательности. Подсчитать, сколько в ней отрицательных чисел, и сумму положительных чисел.

  5. Дана последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли она неубывающей.

  6. Дана последовательность ненулевых чисел, 0-конец последовательности. Определить, сохраняет ли она знак.

  7. Вводится последовательность ненулевых чисел; 0-конец последовательности. Подсчитать, сколько в ней пар соседних равных элементов.

  8. На выставке собак, где были представлены разные породы, отбор животных производился по возрасту и высоте холки. Определить, сколько было боксеров 2-3-летнего возраста с высотой холки не менее 55 сантиметров.

  9. В очереди за билетами стоят мужчины и женщины. Какое количество мужчин стоит в начале очереди до первой женщины.

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

а) у= cosx+cosx2+cosx3+ ... + cosx30;

б)у=1!+2!+3!+...n!(n>1);

в) у- первое из чисел sin x, sin sin x, sin sin sin x,., меньшее по модулю 10-4.

Числа Фибоначчи (fn) определяются формулами

f0=f1=1; fn=fn-1+fn-2 при n=3,4,... то есть два первых числа равны единице, а каждый последующий член является суммой двух предыдущих.

а) определить f-40-е число Фибоначчи;

б) найти f -первое число Фибоначчи, большее т(т>1);

в) вычислить s-сумму всех чисел Фибоначчи, которые не превосходят 1000.

  1. Дано натуральное число п.

а) определить n-ое число Фибоначчи;

б) найти сумму всех чисел Фибоначчи, которая не превосходит п;

в) вычислить сумму п чисел Фибоначчи.

13. Дана непустая последовательность натуральных чисел, за которой следует 0. Вычислить сумму тех из них, порядковые номера которых- числа Фибоначчи.

14. Не используя стандартные функции (за исключением abs), вычислить с точностью eps>0:

а) у=ех=1+х/1 !+х2/2!+.. .+хn/n!+...;

б) y=sh x =x+x3/3!+x5/5!+...+x2n+1/(2n+l)!+...;

в) у= cosx = 1-х2/2!+х4/4!-.. .+(-1) nх2n /(2n)!+...;

г) у = ln (1+х)=х-х2/2+х3/3-...+(-1)n-1 хn/n +...(x<1);

д) у= arctg x =x-x3/3+x5/5-...+(-l)nx2n+1/(2n+l)+...(x<l). Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps,-вce последующие слагаемые можно уже не учитывать.

15. Напечатать таблицу значений функций sin x и cos x на отрезке [0,1] с шагом 0.1 в следующем виде (считать, что при печати на каждое вещественное число отводится по 6 позиций строки):

_х sin(x) cos(x)_

0.0000 0.0000 1.0000

0.1000 0.0998 0.9950

1.0000 0.8415 0.5403

16. Дано не менее трех различных натуральных чисел, за которыми следует 0. Определить три наибольших числа среди них.

17. Дана непустая последовательность ненулевых целых чисел, за которой следует 0. Определить, сколько раз в этой последовательности меняется знак. (Например, в последовательности 1, -34, 8,14, -5 знак меняется 3 раза.)

18. Дана последовательность из не менее чем двух натуральных чисел, за которой следует 0. Вычислить сумму тех из них, порядковые номера которых- простые числа.

19. Дано натуральное число п найти количество цифр данного числа, больших а (а вводится с клавиатуры);

20. Найти сумму цифр заданного натурального числа п.

21. Определить число, получаемого выписыванием в обратном порядке цифр заданного натурального числа п.

22. Получить таблицу температур по Цельсию от 0 до 100 градусов и их эквивалентов по шкале Фаренгейта, используя для перевода формулу

23. Вычислить значения функции у=4х3-2х2+5 для значений х, изменяющихся от -3 до 1, с шагом 0.1.

24. Дано натуральное число п. Вычислить значения функции

для х= 1; 1.1; 1.2; ...;1+0.1n.

25. Даны натуральные число п, действительное числа а1, ... , ап. Получить b1, ... , bп, где

26. Вычислить: у= sin 1+ sin 1.1+sin 1.2+...+sin2.

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

  1. Формат оператора цикла с пред- и постусловием.

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

Лабораторная работа №8 Решение задачи на создание и уничтожение объекта.

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с принципами создания объектов. Закрепить полученные на лекции знания. Написать и отладить программу

Теория:

Принципы ООП:

  1. Инкапсуляция - объединение в единое целое данных и алгоритмов обработки этих данных;

  2. Наследование - свойство объектов порождать своих потомков;

  3. Полиморфизм – свойство родственных объектов решать схожие по смыслу проблемы разными способами.

Для создания объектов используют 3 зарезервированных слова: object, constructor, destructor и 2 стандартные директивы: private, public.

Object – для описания объекта:

Type

Имя объекта = object

private {поля объекта}

{методы объекта}

public {поля объекта}

{методы объекта}

end;

private- описание скрытых полей и методов;

public- поля и методы доступны в любой программной единице.

Например: Создать модуль с объектом «Линия» и методами «Нарисовать», «Переместить» и «Удалить».

UNIT Linia;

INTERFACE

Type

TLene = object

Private

x1, y1, x2, y2 : integer; {координаты линии}

color: word; {цвет линии}

Public

Procedure Draw (ax1,ay1,ax2,ay2:integer; aColor:word);

Procedure Perem;

Procedure Udal;

End;

IMPLEMENTATION

Uses graph;

Procedure TLene.Draw;

var dg, dm :integer;

Begin

dg:=detect; InitGraph(dg,dm, ’’);

x1:=ax1; y1:=ay1; y2:=ay2; x2:=ax2;

color:=aColor; setcolor(aColor);

line(x1,y1,x2,y2);

line(x2,y2,x2+60,y2);

End;

Procedure TLene.Perem;

Begin

ClearDevice; SetColor(color);

Line(x1+30,y1+30,x2+30,y2+30);

Line(x2+30,y2+30,x2+90,y2+30);

End;

Procedure TLene.Udal;

Begin

ClearDevice; ReadLn; CloseGraph;

End;

END.

Основная программа: Использование модуля и объекта

Program Object_Line;

Uses crt, Linia;

Var x,y,xs,ys :integer;

Color:word;

objLine:TLene; {объект типа TLene }

Begin

ClrScr;

Readln(x,y,xs,ys,color);

objLine .Draw(x,y,xs,ys,color); {вызов процедуры Draw для объекта}

objLine.Perem;{вызов процедуры Perem}

objLine.Udal; {вызов процедуры Udal}

End.