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


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



ЗНАЕТЕ ЛИ ВЫ?

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



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

Цель работы

Приобретение навыков по работе с системой Turbo Pascal. Приобретение навыков определения типов переменных в зависимости от характеристик данных и разработки линейной программы на языке Pascal с вводом и выводом данных.

Задание на лабораторную работу

1. Освоить функции интегрированной среды Turbo Pascal для подготовки текста программы, компиляции и запуска на выполнение (п. 1.5.1 - 1.5.2).

2. Составить программу по заданному варианту.

Требования к программе

Программа должна выводить:

– сообщения о разработчике программы;

– сообщения-подсказки перед вводом данных;

– сообщение о выводе результатов;

– результаты должны выводиться в следующем виде: <Имя_переменной> = <Значение_переменной>, значение переменной должно быть в отформатированном виде.

Порядок выполнения работы

1. Получить вариант задания (п. 1.9).

2. Изучить функции системы Turbo Pascal для подготовки текста программы, компиляции и запуска на выполнение. Освоить функции редактора для подготовки текста программы (п. 1.5.1 - 1.5.2).

3. Изучить структуру Pascal-программы, операторы определения переменных стандартных типов и операторы ввода-вывода значений переменных указанных типов (п. 1.6 - 1.7).

4. Подготовить файл с исходным текстом программы и отладить программу с использованием среды Turbo Pascal (п. 1.5, 1.8).

5. Устно ответить на контрольные вопросы (п. 1.11).

6. Оформить отчет (п. 1.10).

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

Порядок создания программы на языке Turbo Pascal

При выполнении лабораторных работ используется интегрированная система (среда) «Turbo Pascal», которая позволяет выполнять все функции, необходимые для создания программы:

– подготовку текста программы;

– компиляцию (перевод исходного текста программы в машинный код);

– отладку;

– выполнение;

– формирование исполняемого (загрузочного) модуля.

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

Переход в каталог, содержащий файл turbo.exe и его запуск: найти на диске файл turbo.exe (см. организацию каталогов) и запустить его нажатием клавиши ввод или просто набрать на клавиатуре TURBO и нажать клавишу ENTER.

При входе в интегрированную среду Turbo Pascal на экране появляется окно, в верхней части которого находится главное меню функций (рисунок 1.1), в нижней – строка подсказок (помощи).

File Edit Search Run Compile Debug Tools Options Window Help

Рисунок 1.1 – Главное меню

Назначение функций:

– File – выполнение операций с файлами в целом (открыть, сохранить

и др.);

– Edit – команды редактирования текста (копировать блок или фрагмент текста, переместить блок текста и др.);

– Search – поиск;

– Run – выполнение программы;

– Compile – компиляция программы;

– Debug – отладка программы;

– Tools – использование инструментальных программных средств (Turbo Debugger, TurboAssembler и др.);

– Options – "опции" или возможности для различных режимов (компиляции, отладки, использования каталогов, установка цветов и др.);

– Window – команды управления окнами;

– Help – использование помощи программисту.

Для выполнения требуемой функции можно:

– нажать клавишу F10, затем, перемещая клавишами <--, --> курсор меню (выделенный прямоугольник), выбрать нужный пункт и нажать клавишу Enter,

– одновременно нажать клавишу Alt и клавишу с выделенной буквой в нужном пункте меню; например, для выполнения функции File следует нажать Alt +F.

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

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

Подготовка нового текста программы: F10, File, New; откроется новое окно, которое можно использовать для набора текста программы.

Набор или редактирование исходного текста программ происходит в окне редактирования. При этом используются приемы, принятые во многих других редакторах (Works, Lexicon, Word и др.). Интегрированная среда поддерживает функции работы с блоками, строками, со словами и с отдельными символами. Подробнее об этом можно узнать в разделе помощи. Для этого нажмите F1 и в появившемся окне помощи выберите пункт Using the editor. Далее выберите из списка нужную группу команд. Примеры использования клавиш редактирования текста:

– Ins – включение/выключение режима вставки/замены символа в позиции курсора;

– клавиши со стрелками – сдвиг курсора в соответствующем направлении;

– End – перемещение курсора в конец строки;

– Home – перемещение курсора в начало строки;

– PgUp – сдвиг текста программы на страницу назад;

– PgDn – сдвиг текста программы на страницу вперед;

– Ctrl+W – сдвиг строк текста программы вниз;

– Ctrl+Z – сдвиг строк текста программы вверх;

– Ctrl+стрелка вправо – перемещение курсора на слово вправо;

– Ctrl+стрелка влево – перемещение курсора на слово влево;

– (BackSpace) – удаление символа слева от курсора;

– Del – удаление символа над курсором;

– Ctrl+Y – удаление строки;

– Ctrl+Q,Y – удалить символы от курсора до конца строки;

– Ctrl+N – вставка строки.

Имеются и другие возможности для редактирования текста (см. Help).

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

– F10\File\Save, ввести имя файла в поле Save file as (по умолчанию Turbo Pascal устанавливает имя NONAMExx.PAS (предпочтительно использование оригинальных имен, задаваемых пограммистом),

– F2 (текст будет сохранен с именем по умолчанию или с заданным именем).

Загрузка текста программы с диска:

– F10\ File\ Open; откроется окно с приглашением ввода имени программы (это окно можно вызвать также и путем нажатия клавиши F4); нажмите Tab для перехода в режим выбора каталогов и файлов. Выберите нужный вам каталог и файл и нажмите ввод. Откроется новое окно, содержащее текст выбранного файла.

Компиляция программы в исполняемый модуль (создание исполняемого модуля):

– F9, появится окно, информирующие о ходе компиляции. В строке Destination указывается место размещения исполняемого модуля. При значении Destination: "Memory" исполняемый модуль размещается в оперативной памяти и в дальнейшем будет потерян. Для сохранения исполняемого модуля на диске в главном меню в пункте Compile выберите пункт Destination и нажмите ввод.

Повторите компиляцию. После успешной компиляции на диске в установленном программистом каталоге (F10\Options\Directories) появляется новый файл xxxххх.exe, где xxxххх – это имя файла с исходным текстом, расширение исполняемого модуля. При наличии синтаксических ошибок выводится сообщение об ошибке, и курсор указывает место, куда нужно внести изменения (см. п. 1.8).

Выполнение программы:

– находясь в окне с исходным текстом программы, нажмите одновременно Ctrl и F9. Появится окно компиляции. После прохождения процесса компиляции программа будет выполнена.

Выход из среды Turbo Pascal выполняется с помощью одновременного нажатия клавиш Alt и X или выбора пункта меню F10\File\Quit. Если программа не была ранее сохранена, то появится окно, аналогичное окну загрузки, с приглашением ввести имя программы. После ввода имени нажмите ввод. Программа сохранится в файле с заданным именем.

Таблица 1.1

Целый тип Диапазон значений Размер памяти
Shortint -128 … 127 1 байт
Integer -32768... 32767 2 байта
Longint -2147483648...2147483647 4 байта
Byte 0... 255 1 байт
Word 0... 65535 2 байта

 

Для вывода поясняющего текста (подсказок оператору ЭВМ) можно использовать операторы типа:

Write('Сообщение о вводе данных');

Writeln('Сообщение о выводе результатов');

 

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

Read(A,B,C);

Readln(S1);

При вводе числа разделяются пробелом, символы вводятся без разделителя.

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

Write(Result:7:2);

где «7» – общее количество разрядов результата (включая знак числа, целую часть, десятичную точку и дробную часть), «2» – количество разрядов после десятичной точки.

Writeln(Result:7:2);

Арифметические выражения на языке Turbo Pascal:

A + B – сложение вещественных или целых чисел,

A - B – вычитание вещественных или целых чисел,

A * B – умножение вещественных или целых чисел,

A / B – деление вещественных чисел,

A div B – деление целых чисел (целая часть частного).

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

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

а) вычисляется значение выражения, записанного в правой части оператора;

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

<переменная>: = <арифметическое_выражение> или <константа>;

например, Result: = (A + B) / X;

B1: = true;

1.7. Пример подготовки и выполнения программы

После загрузки среды Turbo Pascal нажмите F10 и выберите File\ New для создания нового окна. После этого можно приступить к набору текста программы, нажимая Enter в конце каждой строки. Например:

{Программа вычисления суммы двух чисел}

program First_Program;

uses crt; {USES-раздел объявления внешних модулей}

{СRT-модуль работы с экраном}

var

A,B: Real; {вводимые данные}

S: Real; {сумма чисел }

begin

clrscr; {вызов процедуры очистки экрана}

Writeln (' Программа вычисления суммы двух чисел ');

Writeln ('---------------------------------');

Write ('Введите два любых числа: ');

Readln (A,B);

S:=a+b;

Writeln(‘S=’,S:8:2);

Writeln(‘Нажмите ENTER для продолжения работы’);

Readln {ожидание нажатия клавиши Enter}

end.

Для сохранения программы выберите команду Save из меню File (или F2).

Для компиляции программы нажать F9.

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

При наличии ошибки см. п. 1.8.

Для выполнения программы следует выбрать Run/Run в главном меню (или нажать Ctrl-F9).

Пример работы описанной выше программы

1. На экран выводятся сообщения, которые заданы в операторах Writeln вашей программы:

«Программа вычисления суммы двух чисел»

«Введите два любых числа:»

2. Ввод двух любых чисел с пробелом между ними.

3. На экран выводится следующее сообщение:

S=,

а за ним – вычисленная сумма двух введенных чисел.

4. В следующей строке выводится сообщение "Нажмите Enter для продолжения работы". Программа будет ждать нажатия клавиши Enter.

Чтобы посмотреть результаты работы программы, выберите Window/User Screen (или нажмите Alt+F5). Если во время выполнения программы произошла ошибка, то на экране появится сообщение, которое выглядит следующим образом:

Run-time error <errnum> at <segment>:<offset>,

где <errnum> – это соответствующий код ошибки,

<segment>:<offset> – это адрес в памяти, где произошла ошибка. Вы окажетесь в точке расположения ошибки в своей программе с описательным сообщением об ошибке. Пока сообщение находится в строке статуса редактора, можно нажать F1 для получения справочной информации по конкретной ошибке. Нажатие любой другой клавиши приводит к исчезновению сообщения об ошибке.

Ошибки компиляции

Какие ошибки компиляции вероятнее всего вы получите? Наиболее возможными ошибками для начинающего программиста на языке Паскаль будут:

Error 2: Identifier expected {Ожидается идентификатор}

Error 3: Unknown identifier {Неизвестный идентификатор}

Error 4: Duplicate identifier {Копия идентификатора}

Error 12: Type identifier expected {Ожидается тип

идентификатора}

Error 26: Type mismatch {Несоответствие типов}

Error 36: BEGIN expected {Ожидается BEGIN}

Error 37: END expected {Ожидается END }

Error 62: Division by zero {Деление на 0}

Error 85: ";" expected {Ожидается ";"}

Error 86: ":" expected {Ожидается ":"}

Error 87: "," expected {Ожидается ","}

Error 88: "(" expected {Ожидается "("}

Error 89: ")" expected {Ожидается ")"}

Error 90: "=" expected {Ожидается "="}

Error 91: ":=" expected {Ожидается ":="}

Error 92: "[" or "(." expected {Ожидается "[" или "(."}

Error 93: "]" or ".)" expected {Ожидается "]" или ".)"}

Error 94: "." expected {Ожидается "."}

Error 113: Error in statement {Ошибка в операторе}

Turbo Pascal требует, чтобы вы объявили все переменные, типы данных, константы и подпрограммы (все идентификаторы) перед их использованием. Если вы обратитесь к необъявленному идентификатору или пропустите его, то при компиляции будет обнаружена ошибка. Другой частой ошибкой является несоответствие пар begin..end; использование несовместимых типов в операторе присваивания (например, присваивание действительного числа переменной целого типа); несоответствие количества и типа параметров в вызовах процедур и функций и в их объявлении т.д.

Когда вы начинаете компиляцию, в центре экрана появляется окно, содержащее информацию о данной компиляции. Если во время компиляции не выявлено никаких ошибок, то в этом окне появится сообщение "Compilation successful: press any key" (компиляция успешна: нажмите любую клавишу). Окно остается на экране до тех пор, пока вы не нажмете любую клавишу.

Если во время компиляции обнаружена ошибка, Turbo Pascal останавливается, устанавливает курсор на ошибку в редакторе и показывает сообщение об ошибке вверху редактора. (Первое нажатие клавиши очистит это сообщение, а при нажатии Ctrl+Q W будет показывать его снова до тех пор, пока вы не измените файл или не перекомпилируете его). Сделайте исправления, сохраните обновленный файл и компилируйте снова.

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

1. Вычислить площадь треугольника.

2. Вычислить площадь круга.

3. Вычислить площадь трапеции.

4. Вычислить площадь квадрата.

5. Вычислить объем куба.

6. Вычислить среднее арифметическое трех чисел.

7. Вычислить квадрат числа.

8. Вычислить периметр треугольника.

9. Вычислить периметр прямоугольника.

10. Вычислить квадрат разности двух чисел.

11. Вычислить квадрат суммы двух чисел.

12. Вычислить объем шара.

13. Вычислить длину средней линии трапеции.

14. Вычислить процент от заданного числа.

15. Вычислить куб разности двух чисел.

16. Вычислить объем цилиндра.

17. Вычислить объем конуса.

18. Вычислить объем треугольной пирамиды.

19. Вычислить разность квадратов двух чисел.

20. Вычислить длину радиуса окружности заданной площади.

Примечание: исходные данные вводятся в диалоговом режиме.

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

• Титульный лист;

• Название и цель лабораторной работы;

• Задание;

• Схему программы;

• Текст программы;

• Примеры работы программы (введенные данные, результаты работы).

• Ответы на контрольные вопросы.

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

1. Каков порядок создания программы в интегрированной среде Turbo Pascal?

2. Какие основные функции выполняет система Turbo Pascal (по главному меню)?

3. Какие операции позволяет выполнять текстовый редактор Turbo Pascal при подготовке программы? Примеры операций редактирования?

4. Как выполнить компиляцию программы с сохранением исполняемого модуля?

5. Как сохранить программу под другим именем?

6. Как открыть окно?

7. Какими способами можно выйти из среды?

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

9. Как вызвать контекстную помощь?

10. Какова структура Pascal-программы?

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

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

Цель работы

Приобретение навыков в составлении и отладке программ на языке Turbo Pascal с использованием операторов: условного перехода if, разветвления case, безусловного перехода goto.

Задание на лабораторную работу

1. Освоить функции системы Turbo Pascal по отладке программы (п. 2.5).

2. Составить программу, работающую в диалоговом режиме (диалог организовать с помощью оператора Case).

Требования к программе

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

– вывод меню;

– вывод сообщения о назначении программы;

– ввод данных;

– вычисления и вывод результатов.

Результаты работы выводятся в отформатированном виде.

Порядок выполнения работы

1. Получить вариант задания (п. 2.8).

2. Изучить функции Turbo Pascal по отладке программы (п. 2.5).

3. Подготовить текст программы и отладить её с использованием интегрированной среды программирования Turbo Pascal (п. 2.5, 2.6, 2.7).

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

5. Устно ответить на контрольные вопросы (п. 2.10).

6. Оформить отчёт (см. п. 1.10)

Справки по операторам

2.6.1. Оператор IF

Основным средством разработки разветвленных структур алгоритмов в Turbo Pascal являются условные операторы if и case. С их помощью можно влиять на последовательность выполнения операторов программы.

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

В качестве условия выбора должно быть логическое выражение; Например, A>B; (A+X)<>N; (A>B) and (B>C).

Оператор if может принимать одну из следующих форм:

1. if <условие> then <оператор 1> else <оператор 2>;

{если <условие> то <оператор 1> иначе <оператор 2>;}

2. if <условие> then <оператор 1>;

{если <условие> то <оператор 1>;}

Оператор if выполняется следующим образом. Сначала вычисляется выражение, записанное в условии. В результате его вычисления получается значение булевского типа. В первом случае, если значение есть true (истина), то выполняется <оператор 1>, указанный после ключевого слова then, иначе выполняется <оператор 2>, указанный после ключевого слова else. Во втором случае, если результат вычисления выражения есть false (ложь), то выполняется оператор, следующий за оператором if.

Например:

·····························

if x>y then max:=x else max:=y;

·····························

При x>y выполняется оператор max:=x, при x£y выполняется оператор max:=y

Пример оператора if без else:

·····························

if x>y then writeln(x);

·····························

При x>y выполняется оператор writeln(x), иначе выполняется оператор, следующий за оператором if.

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

Составной оператор – группа операторов, помещенных между ключевыми словами begin и end.

Например:

if x>y then

begin { начало составного оператора }

max:=x;

writeln(‘max=’, max);

end { конец составного оператора }

else

x:=x+1;

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

Например:

if x< -3 then y:=x+1 else

if x>3 then y:=x*x else y:=y*y;

Примечание. Служебное слово else всегда ассоциируется с ближайшим по тексту if.

2.6.2. Оператор выбора CASE

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

Оператор case имеет следующий формат:

case <выражение-селектор> of

константа или список констант №1: <оператор 1>;

константа или список констант №2: <оператор 2>;

·····························

константа №N: <оператор N>

else <альтернативный оператор>

end;

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

Например:

write(‘Введите значение n =’);

readln(n);

case n of

1: y:=x;

2: y:=x*x;

3: y:=x*x*x

else y:=0

end;

writeln(‘y=’, y);

При n=1 выполняется оператор y:=x.

При n=2 выполняется оператор y:=x*x.

При n=3 выполняется оператор y:=x*x*x.

При любых других значениях n выполняется оператор y:=0.

После завершения оператора case выполняется оператор writeln(‘y=’, y). Кроме одиночных констант могут быть заданы списки и/или диапазоны значений.

Например:

case n of

0,1..4: y:=x;

2,5: y:=x*x;

3: y:=x*x*x

end;

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

– значение селектора должно принадлежать дискретному типу; для целого типа integer оно должно лежать в диапазоне -32768..32767;

– все константы, предшествующие операторам альтернатив, должны иметь тип, совместимый с типом селектора;

– все константы в альтернативах должны быть уникальны в пределах оператора case;

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

2.6.3. Оператор GOTO

Оператор безусловного перехода goto означает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий оператор, а какой-нибудь другой. Метка объявляется в разделе описания меток и может содержать как цифровые, так и буквенные символы. Метка отделяется от помеченного оператора двоеточием.

Например:

·····························

label M1;

var

n: integer;

x,y: real;

begin

readln(n,x);

·····························

goto M1;

·····························

M1:

y:=x*2-3/x;

writeln(‘y=’, y);.

Пример программы с разветвленной структурой

Составить программу вычисления функции

Program Lab1;

Uses CRT; { Раздел объявления внешних модулей }

Label M1,M2;

var

n: integer;

x,y: real;

p: byte; {Признак выполнения пунктаN1}

begin

clrscr; { Очистка экрана }

writeln(‘Программа вычисления функции...’);

{ Вывод на экран меню }

writeln(‘+--------------------------------------------+’);

writeln(‘| 1. Ввод данных |’);

writeln(‘| 2. Вычисление функции и вывод результатов |’);

writeln(‘| 3. Завершение работы программы |’);

writeln(‘+--------------------------------------------+’);

p:=0;

M1: writeln(‘введите пункт меню’);

readln(n); { Ввод номера пункта меню}

case n of

1: begin { Ввод данных }

M2: write(‘Введите значение аргумента x=’);

readln(x)

{ Проверка допустимого значения аргумента }

if x=0 then

begin

writeln(‘x не может быть равным 0 по условию’);

goto m2;

p:=1; {Пункт N1 выполнен}

end; end;

2: { Вычисление значения функции }

begin

If p<>0 then

Writeln (‘Данные не введены, выполните пункт N1’);

else

begin

{ Операторы вычисления и вывода значения функции }

if x>0 then y:=1/x else y:=x*x;

writeln(‘при х=’, x:7:2, ‘ y=’, y:7:2)

end

end;

3: Exit { Выход из программы }

end; { end case }

goto M1;

end. { Конец программы}

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

1. Вычислить объем тела со сторонами A, B, C и определить, является ли данное геометрическое тело кубом.

2. Вычислить площадь треугольника со сторонами А, В, С. Перед вычислением площади проверить условие существования треугольника с заданными сторонами.

3. Вычислить площадь треугольника со сторонами A, B, C. Определить, является ли треугольник равнобедренным.

4. Вычислить площадь прямоугольника со сторонами A и B и определить, является ли данная фигура квадратом.

5. Составить программу нахождения корней квадратного уравнения у=ах2+bх+с.

6. Определить, можно ли сделать круглую заготовку с заданным радиусом R из квадратного листа фанеры с заданной стороной A.

7. Определить, хватит ли имеющейся суммы S на покупку N-го количества товара (при известной цене товара).

8. Определить, можно ли сделать две квадратных заготовки со стороной А из листа железа прямоугольной формы со сторонами В и С.

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

10. Рассчитать сумму оплаты за потребленную энергию, если известны: стоимость 1 квт\час, расход энергии, коэффициент льгот (льготы могут отсутствовать).

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

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

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

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

15. Определить выполнен ли план по продаже товара за день, если известны: план продажи (в рублях), количество проданного товара и цена товара.

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

17. Определить наибольшую выручку от продажи трех видов товаров, если известны: цена товара; количество проданных товаров каждого вида.

18. Определить сколько корней имеет уравнение y= ах2+вх+с.

19. Определить, является ли число А четным или нечетным.

20. Вычислить площадь треугольника со сторонами A, B, C и определить, является ли данный треугольник равносторонним.

Содержание отчета (см. пункт 1.10)

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

1. Назначение, формы записи и порядок выполнения оператора условия if.

2. Особенности использования вложенных условных операторов.

3. Каковы отличия оператора выбора case от оператора условия if?

4. Какие правила должны выполняться при использовании оператора выбора case?

5. Назначение и особенности оператора безусловного перехода.

6. Для чего нужна отладка программы?

7. Как выполнять программу в пошаговом режиме?

8. Как поставить точку останова?

9. Как отменить точки останова?

10. Как открыть окно Watch?

11. Как внести переменную в окно Watch?

 

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

Цель работы

Целью работы является освоение процесса разработки циклических программ с заданным (известным) числом повторений на языке Turbo Pascal.

Задание на лабораторную работу

Разработать две программы с использованием оператора повтора (цикла) FOR:

Вычисление заданной величины (суммы N слагаемых, произведения N сомножителей и т.п.);

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

Требования к программе

См. пункт 1.3.

Порядок выполнения работы

1. Получить вариант задания (п. 3.7).

2. Изучить правила использования оператора FOR для разработки циклических программ (п. 3.5).

3. Составить и отладить программу вычисления заданной величины (суммы N слагаемых, произведения N сомножителей и т.п.) в соответствии с подпунктом "а" варианта задания.

4. Изучить правила определения и использования данных типа "массив" (ARRAY), (п. 3.6) и рекомендации по обработке массивов данных.

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

6. Устно ответить на контрольные вопросы (п. 3.9).

7. Оформить отчет (см. п. 1.10)

3.5. Оператор повтора (цикла) FOR

Для программирования циклических вычислительных процессов с известным числом повторений в языке Turbo Pascal предназначен оператор FOR, который может использоваться в форме

For i:=N1 to N2 do S1;...

или в форме

For i:=N1 downto N2 do <оператор>;...,

где i – управляющая переменная дискретного типа (Integer, Char, Boolean и др.); имя переменной может быть любым допустимым идентификатором, N1, N2 – выражения, определяющие начальное и конечное значения управляющей переменной, S1 – простой или составной оператор (тело цикла).

При использовании первой формы оператора FOR алгоритм работы следующий:

1) значению управляющей переменной присваивается начальное значение (i:=N1);

2) значение i сравнивается с конечным значением N2; если i <= N2, то выполняется оператор S1, затем переменная i принимает следующее значение из упорядоченной последовательности и п. 2 повторяется, в противном случае (т.е. если i > N2) передается управление оператору, следующему за оператором S1.

При использовании второй формы оператора FOR:

1) значению управляющей переменной присваивается начальное значение (i:=N1);

2) значение i сравнивается с конечным значением N2; если i >= N2, то выполняется оператор S1, затем переменная i принимает следующее значение из упорядоченной последовательности и п. 2 повторяется, в противном случае (т.е. если i < N2) передается управление оператору, следующему за оператором S1.

Ограничения оператора FOR:

– выражения N1 и N2 должны иметь тип, совместимый с типом управляющей переменной;

– в теле цикла запрещается изменять значение управляющей переменной;

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

Пример программы вычисления температуры по Фаренгейту в зависимости от заданной температуры по Цельсию от 15 до 30 градусов. Перевод температуры выполняется по формуле F=C*1.8+32;

Program demoFor;

var

i: integer;

F: real;

begin

writeln(‘Температура по Цельсию и по Фаренгейту’)

for i:= 15 to 30 do {Заголовок цикла}

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

F:=i*1.8+32;

writeln(i:2, F,6:2)

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

end.

3.6. Определение и использование данных типа "массив"

Данные типа массив в языке Turbo Pascal определяются следующими правилами:

а) type

<имя типа данных> = Array [<список типов индексов>] of <тип данных, которые должны содержаться в массиве>;

var <список переменных>: <имя типа данных>;

б) var

<список переменных>: Array [<список типов индексов>] of <тип данных, которые должны содержаться в массиве>;.

Массивы могут иметь вид списка (одномерный массив), матрицы (двумерный массив) и т.д. (трех-, четырех-, n-мерный); при этом должны использоваться 1, 2 и т.д. индексов.

Например:

...

type

digit = array [0..9] of char;

{digit – новый тип данных – "одномерный массив"; 0..9 – тип индекса (диапазонный или ограниченный тип); char – тип данных, которые должны содержаться в массиве}

matrix = array [byte, byte] of real;

{ matrix - новый тип данных - "двумерный массив"; byte - тип индексов }

var

A, B: digit; {A,B - переменные типа digit}

M1, M2: matrix; {M1,M2 - переменные типа matrix}

Cube: array[1..5, 'A'..'H', boolean] of char;

{ Cube - переменная типа "трехмерный массив" }

...

Доступ к элементам массива для присвоения значений (записи), использования в выражениях и других действиях выполняется с помощью указания индексов элементов; например:

 

readln(A[1]); {ввод с клавиатуры значения элемента 1 массива A}

A[3]:='F'; {присвоение элементу 3 массива A значения 'F'}

M1[i,j]:=M2[j,i]-5.55;{вычисление значения элемента с индексами i,j массива M1}

writeln(M1[k, n]); {вывод на экран значения элемента массива M1}

 

Ввод и вывод значений элементов массивов может выполняться с использованием оператора FOR; например:

 

writeln('Введите количество элементов массива (не более 10)');

readln(N);

for i:=1 to N do

begin

write(i,'-й элемент: ');

readln(B[i])

end;

...

writeln('Введите количество элементов матрицы ');

readln(k,n);

for i:=1 to k do

for j:=1 to n do

begin

write(i,' ',j,'-й элемент=: ');

readln(M1[i,j])

end;

...

writeln('Результат вывода значений матрицы');

for i:=1 to k do

begin

for j:=1 to n do write(M2[i,j],' '); {вывод i-й строки}

writeln {переход на новую строку}

end;

...

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

1.а) Вычислить n!

б) Подсчитать количество нулевые элементов кортежа

в) Определить количество элементов матрицы, значения которых не превышают заданное число.

2.а) Вычислить .

б) Подсчитать сумму нечетных элементов кортежа

в) Найти минимальный элемент матрицы n´m.

3.а) Вычислить .

б) Заменить отрицательные элементы кортежа на 0.

в) Найти максимальный элемент матрицы.

4.а) Вычислить .

б) Найти сумму четных и нечетных по номеру элементов кортежа А(20)

в) Поменять местами минимальный и максимальный элемент матрицы.

5.а) Вычислить .

б) Вычислить разность элементов двух кортежей одинаковой размерности

в) Поменять местами два заданных элемента матрицы.

6.а) Вычислить .

б) Разделить четные по номеру элементы кортежа на 2 и умножить нечетные на 2.

в) Поменять местами две заданных строки матрицы.

7.а) Вычислить .

б) Вывести на печать номера элементов кортежа, значение которых равно p

в) Транспонировать матрицу А (5´5)

8.а) Вычислить .

б) Подсчитать количество отрицательных и положительных элементов кортежа.

в) Сформировать массив В, содержащий сумму элементов каждого столбца матрицы А.

9.а) Вычислить .

б) Заменить все элементы кортежа, значение которых больше "-3" и меньше "+3", на 0.

в) Поменять местами два заданных столбца матрицы.

10.а) Вычислить .

б) Найти сумму отрицательных и количество положительных элементов кортежа В(25).

в) Определить количество отрицательных элементов матрицы.

11.а) Вычислить

б) Переписать элементы кортежа А(20) в кортеж В(20) в обратном порядке.

в) Определить количество положительных элементов матрицы.

12.а) Вычислить .

б) Заменить отрицательные элементы кортежа на их квадрат.

в) Вычислить среднее арифметическое элементов матрицы.

13.а) Вычислить .

б) Переставить элементы кортежа в обратном порядке.

в) Вычислить произведение отрицательных элементов матрицы.

14.а) Вычислить .

б) Заполнить кортеж А случайными числами от 0 до 15 с помощью функции Random и подсчитать количество элементов кортежа, значение которых больше 7.

в) Вычислить сумму положительных элементов матрицы.

15.а) Вычислить .

б) Найти произведение нечетных по номеру элементов кортежа А(10).

в) Все отрицательные элементы матрицы возвести в квадрат.

16.а) Вычислить

б) Определить номер и значение минимального элемента кортежа

в) Сформировать массив B, содержащий максимальные элементы строк матрицы A.

17.а) Вычислить .



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 447; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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