Министерство образования и науки Красноярского края

КГАОУ СПО «Канский педагогический колледж

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

ВВЕДЕНИЕ В ТУРБО-ПАСКАЛЬ

Методические указания для лабораторных работ

Специальность 050201 – «Математика»

Канск 2011

Печатается по решению Педагогического совета колледжа

Автор-составитель: , канд. пед. наук, доцент.

Рецензент: , кандидат педагогических наук, доцент кафедры ИВТ КГПУ им. В.П. Астафьева в г. Канске

Программирование. Введение в Турбо-Паскаль: методические указания для лабораторных работ / автор-сост. , рец. , КГАОУ СПО «Канский педагогический колледж», Канск, 2011 г. – 80 с.

Рассматриваются основные этапы выполнения лабораторных работ по курсу «Программирование», по теме «Введение в Турбо-Паскаль». Предлагаются методические рекомендации и алгоритмы для решения задач, а так же системы тренировочных упражнений по каждой теме. Пособие разработано на основе методических пособий Красноярского государственного педагогического университета «Практика работы на языке Турбо-Паскаль» и «Графика в Турбо-Паскале 5.5» (Составители: Пак Н. И., ), и предполагает совместное с ними использование.

© КГАОУ СПО «Канский педагогический колледж»

ВВЕДЕНИЕ

Действующий учебный план специальности «Математика» предусматривает при изучении факультативных курсов «Программирование» и «Практикум на ЭВМ» проведение лабораторных и практических занятий. К лабораторным работам относятся те занятия, которые предполагают непосредственную работу с ЭВМ по вводу, отладке и выполнению разработанных студентами программ. Лабораторные работы проводятся в компьютерном классе, в условиях, наиболее благоприятных для освоения таких «инструментальных» дисциплин.

НЕ нашли? Не то? Что вы ищете?

Наиболее важным разделом учебной программы по курсу «Программирование» является изучение одного из языков программирования высокого уровня (Паскаль). На практических занятиях студенты отрабатывают практические навыки программирования на языке программирования Паскаль, изучают его основные структуры и возможности.

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

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

Предлагаемые методические рекомендации представляют собой одну из составных частей комплекса пособий для студентов, разработанных на кафедре информатики и ВТ КГПУ, «Практика работы на языке Турбо-Паскаль: методическое пособие для студентов математического и физического факультетов» и «Графика в Турбо Паскале 5.5: методические указания для студентов математического и физического факультетов» (авторы Пак. Н. И., ).

Основная цель работы - оказание помощи студентам при выполнении заданий лабораторных работ, предлагаемых в пособиях. Все задания носят в большей степени тренировочный характер. Это значит, что в лабораторные работы не включены более трудные задачи, требующие углубленной самостоятельной работы студентов. Такие задачи включаются в задание на специализированную вычислительную практику, на выполнение курсовых работ. Ход лабораторных занятий по информатике больше основан на индивидуальной работе студентов.

Обычно индивидуальные задания рассчитаны на совместную деятельность 2-х обучаемых (работая вдвоем, легче, например, контролировать правильность ввода требуемой информации, корректировать программу). Целесообразно предусмотреть оформление выполненной лабораторной работы (в виде отчета). Это позволит каждому студенту формировать банк простых примеров программ, в которых используются различные конструкции языка. Структура данного пособия довольно проста: к каждой лабораторной работе из [1], [2] даются методические указания по выполнению всех заданий, подробно рассматриваются общие вопросы записи программ и оформления отчетов.

В Приложении 1 кратко излагаются основные моменты работы в интегрированной среде Турбо-Паскаль 5.5.

Приложение 2 содержит основные константы модуля GRAPR.

Третье Приложение содержит тексты программ для выполнения всех заданий, предложенных в [1], [2] и предназначено для преподавателя, проводящего лабораторные занятия.

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

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

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

Многие задания из [1], [2] довольно просты, поэтому студентам по желанию могут быть предложены усложненные задачи, которые получаются из имеющихся путем ввода различных ограничений и дополнительных условий.

Так, например выполняя работу по теме «Строки в Паскале» можно положить, что слова в обрабатываемых текстах (предложениях) могут быть разделены не только пробелами но и знаками препинания (запятая, двоеточие и т. п.), либо работать с текстами, количество символов в которых больше 256. Очевидно в этом случае придется обрабатывать массивы строк.

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

P. S.: Автор выражает глубокую благодарность рецензентам данного пособия за плодотворное сотрудничество.

Вариант 20

Лабораторная работа N 6.

Тема. Работа со строками в Паскале.

Цели работы. Получение навыков в работе с символьной информацией. Знакомство с задачами обработки текстов.

Задача. В данной строке удалить все пробелы и выделить подстроку, которая содержится в ней после первого символа «:».

Краткий алгоритм:

1) Ввод строки.

2) Поиск символов-пробелов в строке с помощью стандартной функции Pos, и удаление их из строки стандартной процедурой Delete.

3) Поиск символа «:» в полученной строке.

4) Если символ найден, напечатать подстроку, следующую после этого символа. В противном случае вывести сообщение «ТАКОЙ СТРОКИ НЕТ».

 

Программа:

Program lаb20;{вариат 20}

Uses Crt;

Vаr stroka: String[40]; i:lnteger;

Begin ClrScr;

Writеln('введите строку символов');

Readln(stroka);

i:=l;

While i>0 Do

Begin

i:=Pos(' ',stroka);

If i>0 Then delete( stroka, i, 1)

End;

i:=Pos(': ',stroka);

If i >0 Then Wгitеln('подстрока после ":"');

Writeln(Copy(stroka, i+ 1 ,Length(stroke)-i)) Else

Writеln('такой подстроки нет')

End.

Протокол работы: (результаты)

Введите строку символов

asdf ghj jk :hjk 11;

подстрока после":"

hjkll;

Введите строку символов

Я люблю:лето осень зиму весну

подстрока после":"

летоосеньзимувесну

Введите строку символов

мороз туман ветер

такой подстроки нет

ЛАБОРАТОРНАЯ РАБОТА №1.

Тема. Составление линейной программы.

Цели работы:

1) Освоение простейшей структуры программы.

2) Получение навыков в организации ввода/вывода значений стандартных типов данных.

3) Получение практических навыков организации диалога с ЭВМ.

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

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

1) Постановка задачи для конкретного варианта.

2) Алгоритм решения.

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

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

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

а) Можно ли выполнить операцию деления (1) над переменными целого типа?

б) Какого типа будет результат деления 15 на 4?

в) Чему равно odd(15), odd(26)?

г) Чему равно succ(137), pred(26)?

д) Какие из приведенных ниже записей вещественных чисел

1).0 4) 9

5) .0Е-2Е-5Е4 8) +2.3Е+3

9) .,1

являются неправильными и почему?

е) Чему равно:

1) trunc(5.61) 2) trunc(-5.61)

3) round(17.16) 4) round(17.96)

5) round(-17.16) 6) round(-17.96)

ж) Какие из приведенных ниже записей

1) odd(17.1) 2) соs(З2.1)

3) cos(5) 4) sin 0.2

5) suсс(З.2) 6) pred(7)

являются неправильными и почему?

з) Чему равно:

1) pred('b') 2) succ('b')

и) Какие операции определены над переменными булевского типа?

к) Какие из приведенных ниже записей

1) 'А'<'С' 2) '1'>'9'

3) false<true 4) 'А'<'В' and 1<2

5) '0' or '9' 6) (D'>'G') and (1 <2)

являются прав ильными с точки зрения языка Паскаль?

л) Записать на языке Паскаль следующие выражения:

м) Определить тип результата следующих выражений:

1) i*i+j*j+2*k/2 2) х<у

3) sin(x)+2*cos(y)+z 4) i+sqrt(j)

если известно, что i, j,k:lnteger; x, y,z:Real?

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

1) x:=y+sin(sin(z)); 2) а:=(х<у) or b and(i<>k);

3) x:=i+j-b; 4) i:=i+k/j

если i, j,k:lnteger; x, y,z:Real; a, b:Boolean;

о) Что получится в результате выполнения операторов:

1) Writе('а':З,2: 1);Wгitеln(5*З.2);

2) Writeln(5<6,5<=6:8); Wгitеln('конец');

3) Writеln(5*З.2: l,'результат');?

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

без использования оператора присваивания.

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

1. Program whatl;

Uses Crt;

Begin

Writeln(sqrt(64)-sqr(4)>0);

End.

2. Program what2;

Uses Crt;

Var a:Integer;

Begin

Writеln('Введите целое число');

Readln(a);

Writeln(odd( a+succ(а)))

End.

3. Program what3;

Uses Crt;

Var a:Integer;

Begin

Writеln('Введите целое число');

Readln(a);

Writeln(round((a+succ(a)) div 2)-а);

End.

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

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

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

В задании 4 кроме формул для нахождения объема и полной поверхности конуса нужно использовать теорему синусов и теорему Пифагора.

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

В задании 6 при решении используются теоремы косинусов, синусов и формула для вычисления площади треугольника (формула Герона).

В задании 7 фактически нужно найти величину T=V1-V2, где V1- объем куба, объем шара, а затем процент, приняв объем куба за 100%.

В задании 8 требуется найти величину S= S1-S2, где S1 - площадь большого круга, S2 - площадь малого круга (круги имеют общий центр).

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

В 10-ом задании надо найти величину S= S1-S2, где S1 - площадь круга, находящегося в сечении первой трубы, S= S2 - площадь круга в сечении 2-ой трубы.

Для вычисления высот треугольника в задании 11 необходима формула для вычисления площади треугольника.

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

В задании 13 необходимо использовать соотношения между элементами в прямоугольном треугольнике, (определение тангенса) и формулу для вычисления объема шара.

В задании 14 при решении используются соотношения между стороной правильного треугольника и радиусом вписанной окружности, и свойства прямоугольного треугольника.

Для вычисления объема цилиндра в задании 15 используется соотношение между стороной правильного шестиугольника и радиусом окружности, вписанной в него, и формула для вычисления объема цилиндра.

В последнем задании достаточно воспользоваться формулой: S=S0+V0t+at2/2=gt2/2, (S0=0, V0=0), g=9,8 м/с2 - ускорение свободного падения.

ЛАБОРАТОРНАЯ РАБОТА N2.

Тема. Условный переход. Составление разветвляющихся и циклических программ.

Цели работы:

1.  Получение навыков в использовании условного оператора в программе.

2.  Знакомство с задачами, для решения которых используется условный оператор.

3.  Работа с циклами. Знакомство с методами оптимизации программ.

4.  Закрепление навыков в использовании операторов цикла.

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

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

1.  Постановка задачи для конкретного варианта.

2.  Алгоритм решения.

3.  Блок-схема.

4.  Текст программы.

5.  Протокол работы программы.

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

Лабораторная работа состоит из двух частей: в первой части необходимо составить разветвляющуюся программу для решения задачи. Для решения необходимы некоторые сведения из алгебры и геометрии.

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

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

б) Какие из приведенных ниже операторов являются неправильными и почему?

1) If а<b Then а:=а*а Else b:=b*b;

2) If x and у Then s:=s+1;Else s:=s-l;

3) If k<>m Then к:=m;

4) If 5 Then s:=s+5;

5) If (a<b)And p Then p:=p+l0.5;

в) Какие значения имеют переменные а и b в результате выполнения условного операто­ра: If a<b then а:=b else b:=а, если перед его выполнением а=0.5; b=-1.7?

г) Какая задача решается при выполнении оператора:

If x<y Then mах:=у Else mах:=х?

д) Задать с помощью условного оператора следующие действия:

1) меньшее из двух значений переменных вещественного типа Х и Y заменить нулем, а в случае их равенства - заменить нулями оба.

2) Наибольшее из трех различных значений переменных целого типа Х, Y и Z уменьшить на 0.3.

е) Вычислить:

ж) Поменять местами значения целых переменных А, В, С таким образом, чтобы оказалось А>В>С.

з) Какое значение примет переменная F после выполнения следующих операторов:

1)  i:=1;F:=2; While i<6 Do i:=i+1;F:=F*i;

2)  i:=1;F:=2; While i<6 Do Begin i:=i+1;F:=F*i;

и) Что будет изображено в результате работы следующих программ:

1. Prograrn what1;

Uses Crt;

Vаr а: Integer;

Begin ClrScr;

Read(a);

а:=pred( а )+sиcc( а);

If odd(a) Then Wгitеln('вариант1 ')

Else Wгitеln('вариант2')

End.

2. Prograrn What2;

Uses Crt;

Vаr a:Real;k:lnteger;

Begin ClrScr;

k:=0;a:=1;

While a<maxint Do

Begin

k:=k+1;

а:=а*2

End;

Writeln(k,a);

End.

Приступая к написанию программы целесообразно составить блок-схему, тем более она требуется в отчете.

Следует помнить, что условный оператор управляет только одним оператором, поэтому если требуется произвести более одного действия, необходимо использовать составной оператор. Например, необходимо присвоить целым переменным х и у соответственно значения 5 и 23, если параметр а<0, и нули в противном случае.

Оператор If запишется следующим образом:

If а<0 Then Begin

х:=5;у:=23;

End

Else Begin

х:=0;у:=0

End;

Вторая часть лабораторной работы предусматривает составление двух программ:

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

б) программы вычисления суммы всех членов последовательности, не меньших заданного числа е, по заданной формуле члена последовательности с номером k.

Задание, как видно из формулировки общее для всех вариантов, разница лишь в формулах члена последовательности.

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

1) Выяснить, является последовательность возрастающей или убывающей.

2) Найти и записать несколько первых членов последовательности.

3) Подсчитать сумму первых двух, трех, четырех членов последовательности.

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

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

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

НЕКОТОРЫЕ РЕЗУЛЬТАТЫ СЧЕТА

Вариант 1 : S=0,429; S50=0,495; S100=0,497;

Вариант 2: Sз=0,4б7; S50=2,б43; S100=3,312;

Вариант 3 : Sз=0,б53; S50=0,930; S100=30,749;

Вариант 4: Sз=1,401; S50=3,б11; S100=5,758;

Вариант 5 : Sз=3,384; S50=59,133; S100= 114,790;

Вариант б : Sз=0,320; S50=2,291; S100=l, 111;

Вариант 7: Sз=0,343; S50=0,525; S100=0,666;

Вариант 8: Sз=1,166; S50=21,018; S100=42,364;

Вариант 9 : Sз=0,599; S50=1,522; S100=1,753;

Вариант 10: Sз=0,183; S50=2,546; S100=4,663;

Вариант 11: Sз=0,242; S50=0,418; S100=0,427;

Вариант 12: Sз=0,28б; S50=0,405; S100=0,076;

Вариант 13: Sз=1,981; S50=45,016; S100=93,714;

Вариант 14: Sз=0,738; S50=2,600; S100=2,637;

Вариант 15: Sз=0,808; S50=4,895; S100=6,214.

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

Для решения задачи в программе лучше использовать цикл While. Число е зависит от того, какая у вас последовательность, его значение вы должны выбрать сами. Так, если дана убывающая последовательность, а в качестве числа е выбрать число, большее первого члена последовательности, то результатом должна быть сумма, равная нулю.

Например:

Тогда при е=1 s=0;

при е=1/2 s=1/2;

при е=1/8 s=1/2+ 1/5;

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

При отладке правильность работы всех ветвей программы должна быть проверена на тестах. Цикл Repeat...Until в данном случае лучше не использовать, т. к. может оказаться, что первый член последовательности, полученный по формуле сразу меньше числа е, а значит сумма остается равной нулю, и никаких вычислений по программе производить не нужно. Но, как известно, все операторы, находящиеся в цикле Repeat...Until выполняются хотя бы один раз.

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

k=1; t:=2;

p:=yk;

q:=yt;

If p<q Then Writеln('ряд расходится') Else ...

yk, yt - два первых члена последовательности.

При записи формулы члена последовательности в программе также обратите внимание на правильность записи.

Так например для формулы

(к+4)/(к +2)*(к+8) - неправильная запись,

(к+4)/((к +2)*(к+8)) - правильная запись,

(к+4)/(к +2)(к+8) – неправильная (нет знака «*»),

к+4/(к+2)*(к+8) - неправильная; в данном случае записана формула

ЧАСТЬ 1.

Для выполнения первого задания необходимо сначала решить систему уравнений в общем виде, после чего проанализировать решение при различных значениях переменных а, b, с, d, е, f.

Программа должна правильно выполняться при любых значениях начальных данных.

При отсутствии решения или бесконечном множестве решений должен быть напечатан соответствующий текст.

Для определения числа точек пересечения прямой и окружности В задании 2 достаточно решить систему двух уравнений X2+ Y2 =r2 и kx+b-у=0.

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

В задании 4 достаточно найти расстояния от каждой точки до начала координат и выбрать наименьшее.

В пятом задании для того, чтобы проверить, является ли треугольник со сторонами a, b, с прямоугольным, удобно воспользоваться теоремой Пифагора. Значения длинны медианы и периметра треугольника вычисляются по известным формулам.

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

Задание 7 аналогично второму. Точек пересечения может быть две, одна или не быть вообще.

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

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

В задании 10 для вычисления площади и периметра используются известные формулы. Решение задания 11 очевидно.

В задании 12 уравнение ах+bх=0 будет иметь бесконечное множество решений при а=-b, и единственное решение х=0 в противном случае.

Если перевести задание 13 на математический язык то для решения задачи необходимо найти длину катета прямоугольного треугольника, по гипотенузе (1 м.) и углу, противолежащему этому катету. После этого сравнить это значение с радиусом действия локатора (r).

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

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

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

Если аb и cd - искомые числа, то для них выполняется равенство:

sqr(ab+cd)=m1*1000+n1*100+m2*10+n2, где:

m1=аb div 10;

n1=аb mod 10;

m2=cd div 10;

n2=сd mod 10.

ЛАБОРАТОРНАЯ РАБОТА N3.

Тема. Перечисляемый и интервальный типы данных в Паскале.

Цели работы:

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

2.  Получение навыков в организации ввода/вывода значений переменных перечисляемого типа.

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

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

1) Постановка задачи для конкретного варианта.

2) Текст программы.

3) Результаты выполнения программы.

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

Внимательно изучить теоретический материал, понимать, в чем отличие переменных перечисляемого типа от простых типов Real, Integer, Boolean, Byte, Char. Ответьте на вопросы и выполните упражнения:

а) Указать ошибки в следующих описаниях:

1) Const a=2 .. 30;b:='b';pi=3,14159;

2) Туре otrezok=(1;

sity=(Мoscow, Tomsk, Omsk, Kiev);

letters=('A' 'В' 'С' 'D')'

digits=(O,1 ,2,3,4,5,6,7,8,9);

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

Туре figura=(krug, kvadrat, romb);

Var t, x:figura;

z, y: (basket, bag, school-bag);

Какие из перечисленных операторов присваивания неправильно записаны и почему?

1) x:=krug; 2) z:=kvadrat;

3) t:=x; 4) y:=ord(z)+1;

в) В разделе типов описан список деталей

Туре spisok=(shyryp,gaika,vint,shpilka);

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

г) Дано описание переменной ТEKST перечисляемого типа:

Var tekst: (summer, autumn, winter, spring);

По введенному целочисленному значению переменной i присвоить переменной tekst соответствующее значение. Написать фрагмент программы.

д) Найти ошибки в следующей программе:

Program error;

Uses Crt;

Туре month=(jan, feb, march, apr, may, june, jul, aug, sep, oct, nov, dec);

autumn=sep.. nоv;

Var m:autumn;d:'0' .. '9';

k:0 .. 9;

Begin Read(m, d,k);

If m>sep Then d:=k Else k:=ord(m)-8;

Writeln(k, d+k)

End.

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

к:=40;Саsе k mod 4 Of

0:Writeln('k=4m');

1: Writeln('k=4m+ 1');

2: Writeln('k=4m+2');

3: Writeln('k=4m+ 3');

End;

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

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

Из формулировок задач нетрудно видеть, что по структуре про граммы для каждого варианта будут одинаковы. Прежде всего необходимо описать перечисляемый тип данных, конкретный для каждого варианта, а затем брать каждый элемент списка, и в зависимости от его названия выводить соответствующее сообщение (см. пример, стр. 25, [2]).

ЛАБОРАТОРНАЯ РАБОТА N4.

Тема. Процедуры и функции.

Цели работы:

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

2) Изучение механизма передачи параметров.

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

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

1) Постановка задачи для конкретного варианта.

2) Текст программы.

3) Протокол работы программы.

4) Выводы.

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

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

В задании 2 необходимо составить программу для решения конкретной математической задачи.

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

а) Для чего предназначены процедуры?

б) Что включает в себя заголовок процедуры?

в) Чем отличаются формальные и фактические параметры?

г) Чем отличаются локальные и глобальные переменные?

д) Для чего предназначены функции?

е) Что включает в себя заголовок функции?

ж) Какая разница между процедурой и функцией?

з) Известно, что в разделах типов и переменных заданы:

Туре days=(sun, mon, tue, wedn, thur, fri, sat);

number=1 .. 7;

Vаr n:numbеr;

Написать функцию, которая по номеру n определяет соответствующее название дня недели.

и) Определить, что будет выдано на печать в результате выполнения приведенных ниже программ:

1. Program err;

Uses Crt;

Vаг c:Char;

Procedure p(x, y:Char);

Begin

y:=succ(x)

End;

Procedure q(x:Char;Var y:Char);

Begin

y:=succ(x);

End;

Begin

c:= 'а';p('b',c)'Writeln('c=' с);

c:='a';q('b',c); Writeln('c=',c)

End.

2. Program doroga;

Uses Crt;

Procedure р1;

Procedure р2;

Begin

Writeln('Kaнcк')

End;

Begin

р2;

Writеln('Красноярск') ;

р2

End;

Procedure р3;

Procedure р4;

Begin

Writеln('новосибирск')

End;

Begin

р4;

Writеln('Томск');

р4

End;

Begin ClrScr;

рl;

р3;

End.

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4