Главная страница
Навигация по странице:

  • Планируемые результаты освоения

  • Общая структура программы на языке Паскаль

  • Пример программы, которая осуществляет сложение двух чисел и выводит сумму на экран

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

  • Входные данные В единственной строке входного файла INPUT.TXT записано 2 числа через пробел. Оба числа целые, не меньше -10000 и не больше 10000.Выходные данные

  • чисел и выводит на экран: Задача

  • Выходные данные В файл OUTPUT.TXT выведите единственное число.Пример

  • Обратите внимание, что для использования неполного ветвления надо проверять условие a b , а не a > b

  • ЗАДАНИЕ № 2

  • ЗАДАНИЕ № 3

  • ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ

  • Практическая работа. Практическое занятие 16. Разработка и программная реализация алгоритмов решения типовых задач


    Скачать 78.63 Kb.
    НазваниеРазработка и программная реализация алгоритмов решения типовых задач
    АнкорПрактическая работа
    Дата18.02.2021
    Размер78.63 Kb.
    Формат файлаdocx
    Имя файлаПрактическое занятие 16.docx
    ТипЗанятие
    #177423

    Практическое занятие№16.

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

    Цель урока: повторить основные понятия, изучить среду программирования и структуру программы Turbo Pascal, научиться составлять несложные программы в этой среде программирования, производить тестирование программы.

    Планируемые результаты освоения: П3, П4, П9, П10, П11, ОК2, ОК4, ОК5, ОК9

    Продолжительность занятия: 2 часа
    Краткие теоретические сведения
    Паскаль - язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623-1662) и разработан в 1968- 1971 гг. Никлаусом Виртом. Первоначально был разработан для обучения, но вскоре стал использоваться для разработки программных средств в профессиональном программировании.

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

    • Прост для обучения.

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

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

    • Использование простых и гибких структур управления: ветвлений, циклов.

    • Надежность разрабатываемых программ.

    Турбо Паскаль - это система программирования, созданная для повышения качества и скорости разработки программ (80-е гг.). Слово Турбо в названии системы программирования - это отражение торговой марки фирмы-разработчика Borland International (США).

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

    Основные файлы Турбо Паскаля:

    Turbo.exe - исполняемый файл интегрированной среды программирования;

    urbo.hlp - файл, содержащий данные для помощи;

    Turbo.tp - файл конфигурации системы;

    Turbo.tpl – библиотека стандартных модулей, в которых содержатся встроенные процедуры и функции (SYSTEM, CRT, DOS, PRINTER, GRAPH, TURBO3,GRAPH3).

    Для запуска интегрированной среды программирования нужно установить текущим каталог с Турбо Паскалем (TP7\BIN) и ввести команду: turbo.exe.

    Окно программы содержит полосу меню, область окна и строку статуса.

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

    • с помощью"мышки";

    • с помощью клавишиF10;

    • с помощью комбинации Alt+<выделенная буква>. О том, что мы в меню свидетельствует курсор - прямоугольник зеленого цвета.

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

    Активное окно - это окно с которым вы в настоящий момент работаете.

    Команды меню File:

    • Open-F3 - открыть существующий файл (при активизации этой опции появляется окно со списком файлов, где можно выбрать необходимый);

    • New - создать новый файл (очищает память редактора и переводит в режим создания нового файла, которому присваивается имя Noname.pas; имя можно изменить при записи файла на диск);

    • Save-F2 - сохранить файл (переписывает файл из памяти редактора на диск), Save as - сохранить с новым именем;

    • Save all - сохранить все в окнах (записывает содержимое всех окон редактора в соответствующие файлы);

    • Change dir - смена каталога (позволяет изменить установленный по умолчанию диск или каталог);

    • Print - печать файла;

    • Get info - выдача информации о текущем состоянии программы и используемой памяти;

    • DOS Shell - выход в DOS без выгрузки из памяти (для возврата ввести команду exit);

    • Exit - выход и выгрузка из памяти.

    Программы на языке Паскаль имеют блочную структуру:

    Блок типа PROGRAM - имеет имя, состоящее только из латинских букв и цифр. Его присутствие не обязательно, но рекомендуется записывать для быстрого распознавания нужной программы среди других листингов.

    Программный блок, состоящий в общем случае из 7 разделов:

    • раздел описания модулей (uses);

    • раздел описания меток (label);

    • раздел описания констант (const);

    • раздел описания типов данных (type);

    • раздел описания переменных (var);

    • раздел описания процедур и функций;

    • раздел описания операторов.


    Общая структура программы на языке Паскаль:

    Рrogram ИМЯ..; {заголовок программы}

    Uses ...; {раздел описания модулей}

    Var ..; {раздел объявления переменных}

    ...

    Begin {начало исполнительной части программы}

    ... {последовательность. операторов}

    End. {конец программы}
    Пример программы, которая осуществляет сложение двух чисел и выводит сумму на экран:
    Program Summa;

    Uses Crt;{Подключаем модуль Crt}

    Var number1, {переменная, в которой будет содержаться первое число} number2, {переменная, в которой будет содержаться второе число} rezult {переменная, в которой будет содержаться результат} :integer; {указывает тип целых чисел}

    Begin

    ClrScr;{Используем процедуру очистки экрана из модуля Crt}

    Write ('Введите первое число ');

    {Выводим на экран символы, записанные между апострофами}

    Readln (number1);

    {Введенное пользователем число считываем в переменную number1}

    Write ('Введите второе число ');

    {Выводим на экран символы, записанные между апострофами}

    Readln (number2);

    {Введенное пользователем число считываем в переменную number2}

    rezult := number1 + number2;

    {Находим сумму введенных чисел и присваиваем переменной rezult}

    Write ('Сумма чисел ', number1, ' и ', number2, ' равно ', rezult);

    {Выводим на экран строчку, содержащую ответ задачи}

    Readln;{Процедура задержки экрана}

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

    В единственной строке входного файла INPUT.TXT записано 2 числа через пробел. Оба числа целые, не меньше -10000 и не больше 10000.

    Выходные данные

    В файл OUTPUT.TXT выведите единственное число.
    Пример

    INPUT.TXT

    OUTPUT.TXT

    4 7

    -10 -1000

    8 8

    7

    -10

    8


    Решение

    Задача максимально упрощена за счет того, что при равенстве чисел можно вывести любое из них. Надо заметить, что даже в самой простой задаче, подобной этой, можно получить правильный результат несколькими способами. Сейчас мы рассмотри два варианта решения.
    Вариант 1
    Как видно из приведенной блок-схемы (см. рис), можно обойтись неполным ветвлением. Наибольшее значение можно получить в переменной "х", и затем вывести ее на экран или в файл.




    Текст программы на Паскале.

    var

    x,y:integer;

    begin

    read(x,y);

    if x < y then

    x:=y;

    write(x);

    end.

    Вариант 2
    Работоспособен и алгоритм, блок-схему которого вы видите ниже.
    Обратите внимание, что согласно блок схемы, мы вроде никак явно не учитываем вариант равности чисел и просто выводим наибольшее из них. Тем не менее, алгоритм вполне рабочий, т.к. в том случае, когда условие x>y является ложным, истинным является либо то, что y>x или, чтоy=x, т.е. в любом случае, верный результат окажется в переменной y.




    Текст программы на Паскале.

    var

    x,y:integer;

    begin

    read(x,y);

    if x > y then

    write(x)

    else

    write(y);

    end.

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

    В единственной строке входного файла INPUT.TXT записано три числа через пробел. Все числа целые, не меньше -10000 и не больше 10000.

    Выходные данные

    В файл OUTPUT.TXT выведите единственное число.
    Пример

    INPUT.TXT

    OUTPUT.TXT

    4 7 5

    -10 -1000 -100

    8 8 8

    7

    -10

    8




    Решение

    В очередной раз упрощаем задачу за счет того, что при равенстве чисел можно вывести любое из них. Как и в предыдущей задаче возможно несколько вариантов решения.
    Вариант 1
    Первый способ решения задачи основан на использовании дополнительной переменной. Т.е. кроме трех перемененных (например а, b, с) используются дополнительная переменная (например с именем «max») для хранения наибольшего значения. Это пример привожу лишь по той причине, что порой, он оказывается проще для понимания.
    Решение задачи на Паскале
    var

    a,b,c,max:integer;

    begin

    read(a,b,c);

    if a > b then

    max:=a

    else

    max:=b;

    if max > c then

    write(max)

    else

    write(c);

    end.
    Вариант 2
    Как видно из блок-схемы приведенной ниже, использовать дополнительную переменную нет никакой нужды. Отказавшись от полного ветвления при проверке первого условия, удалось уменьшить и код программы. Обратите внимание, что для использования неполного ветвления надо проверять условие a<b, а не a>b.




    Решение на Паскале
    var

    a,b,c:integer;

    begin

    read(a,b,c);

    if a < b then

    a:=b;

    if a > c then

    write(a)

    else

    write(c);

    end.

    Содержание работы:
    ЗАДАНИЕ 1

    Изучите внешний вид системы программирования Турбо Паскаль.
    ЗАДАНИЕ 2

    Откройте файл, в который Вы запишите программу, выполняющую сложение двух чисел. Для этого нажмите клавишу F10, чтобы выйти в главное меню, затем клавишами перемещения курсора выберите опцию File, а в выпавшем меню команду New.

    Найдите в этой программе заголовок, раздел описания переменных, признак начала программы, признак конца программы, тело программы, комментарий.
    ЗАДАНИЕ 3

    Измените программу, выполненную в задании 2 так, чтобы она находила произведение двух чисел. Сохраните текстом программы в файле Proizv.pas. Результат покажите преподавателю.
    ЗАДАНИЕ №4

    Вычислите значение функции и постройте блок схему.

    Провести численные расчеты для a=1, b=2, c=3; a=-5, b=0, c=10.


    Номер варианта

    Искомое значение


    1

    max (a+b+c, abc, a-b)

    2

    min (a+2b, b+3c, c)

    3

    min (2a-b, c2, b+c)

    4

    max (a/c, b+c, 5c)

    5

    min (3a, a+b+7c, 8c)

    6

    max (5a+7b, b-c, 3c)

    7

    min (a2, a+2b-c, c)

    8

    max (a+b+c, 3a+8, a+7c)

    9

    min (ab, ac, bc)

    10

    max (a, a2-b, ac)

    11

    min (a+7, b-4, 3c)



    ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ

    1. Что такое среда программирования?

    2. Опишите среду программирования Тurbo Pascal.

    3. Как сохранить текст программы в Тurbo Pascal?

    4. Какова структура программы на языке Pascal?

    5. Как осуществить запуск программы?

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

    7. Как происходит работа условного оператора If?

    8. В каких двух формах может быть записан оператор If?

    9. Как записываются составные высказывания в условиях?

    10. Объясните полную конструкцию ветвления IF THEN ELSE (перевод).


    ДОМАШНЕЕ ЗАДАНИЕ

    Запишите в тетрадь тему и цель практического занятия, тезисно отобразите краткие сведения, запишите (кратко) ответы на вопросы.


    написать администратору сайта