#5 Модули. Исполнитель чертёжник

Большая практика. Ответы

 

Лёгкий уровень

Задача 1Даны стороны прямоугольник a и b (вводятся с клавиатуры). Найти и вывести на экран его площадь S = a*b и периметр P = 2*(a + b).

Код
Uses Crt;
Var a,b,S:integer;
Begin
 
Write('Введите a - ');
 Read(a);
 Write('Введите b - ');
 Read(b);
 S:=a+b;
 Write('Площадь прямоугольника - ');
 
Writeln(S);
End.  

Задача 2Дано расстояние в сантиметрах (вводится с клавиатуры). Перевести данное расстояние в метры и вывести его на экран (вспомним, что в 1 метре - 100 сантиметров).

Код
Uses Crt;
Var a:integer;
     b:real; 

Begin
 Write('Введите расстояние в сантиметрах - ');
 Read(a);
 b:=a/100;
 Write('Расстояние в метрах - ');
 
Writeln(b);
End. 

 

Средний уровень

Задача 3Даны два ненулевых числа (вводятся с клавиатуры). Найти и вывести на экран их сумму, разность, произведение и частное.

Код
Uses Crt;
Var a,b,S,R,P:integer;
     D:real; 

Begin
 Write('Введите 1-е число - ');
 Read(a);
 Write('Введите 2-е число - ');
 Read(b);
 S:=a+b;
 R:=a-b;
 P:=a*b;
 D:=a/b;
 
Write('Сумма чисел - ');
 Writeln(S);
 Write('Разность чисел - ');
 Writeln(R);
 Write('Произведение чисел - ');
 Writeln(P);
 Write('Частное чисел - ');
 Writeln(D);
End. 

Задача 4Нефтебаза отпустила за два дня 2560 л. бензина. Во второй день база отпустила на 280 л. больше. Сколько литров бензина база отпустила отдельно за каждый день (результат вывести на экран)? 

Код
Uses Crt;
Var S:integer;
     S1,S2:real; 

Begin
 S:=2560;
 S1:=(S-280)/2;
 S2:=S1+280;
 Write('За первый день база отпустила бензина - ');
 Write(S1); Writeln(' литров');
 
Write('За второй день база отпустила бензина - ');
 Write(S2); Writeln(' литров');
End.
  

 

Сложный  уровень

Задача 6Составьте программу для определения сдачи после покупки в магазине товара: перчаток стоимостью a руб., портфеля стоимостью b руб., галстука стоимостью c руб. Исходная сумма, выделенная на покупку - d руб (a,b,c,d - вводятся с клавиатуры). В случае нехватки денег сдача получится отрицательной.

Код
Uses Crt;
Var a,b,c,d:integer;
     s:real; 

Begin
 Write('Введите стоимость перчаток - ');
 Read(a);
 
Write('Введите стоимость портфеля - ');
 Read(b);
 Write('Введите стоимость галстука - ');
 Read(c);
 Write('Введите сумму, выделенную на покупки - ');
 Read(d);
 
S:=d-(a+b+c);
 Write('Ваша сдача : ');
 Write(S); Writeln(' рублей');
End.
  
 
 

 

Модули

 

 
Для того, чтобы вы лучше поняли идею использования модулей, посмотрите на картинку размещенную ниже:
 
Это фотография модульного смартфона. Смартфон изначально обладает некоторой базой - фундаментом и может выполнять простейшие функции (звонки, отправка смс и т.д.). Но у вас не получится сделать фото при помощи данного смартфона пока вы не установите модуль камеры (на рис. Camera). Если вам не будет хватать памяти смартфона, вы можете установить дополнительный модуль, который увеличит её объём.
 
Pascal можно сравнить с такой "базой". Вы по умолчанию можете использовать стандартные команды и функции такие как Write, Read, различные математические операции. Но если вам станет мало стандартных команд, вы можете подключить к Pascal тот или иной модуль, который откроет доступ к дополнительным командам.
 
Стандартные модули Pascal ABC.Net:
 
Crtсодержит набор процедур и функций управления текстовым выводом на экран дисплея, звуковым генератором и чтением символов с клавиатуры без отображения их на экране, а также переменных и констант режимов работы и цветов. (Обратите внимание: в предыдущей статье мы использовали модуль Crt для корректной работы нашей программы в текстовом режиме )
 
GraphABC представляет собой простую графическую библиотеку и предназначен для создания не событийных графических и анимационных программ в процедурном и частично в объектном стиле. Рисование осуществляется в специальном графическом окне, возможность рисования в нескольких окнах отсутствует. Кроме этого, в модуле GraphABC определены простейшие события мыши и клавиатуры, позволяющие создавать элементарные событийные приложения.
 
ABCObjectsреализует векторные графические объекты с возможностью масштабирования, наложения друг на друга, создания составных графических объектов и многократного их вложения друг в друга. Каждый векторный графический объект корректно себя перерисовывает при перемещении, изменении размеров и частичном перекрытии другими объектами.
 
ABCSprites - реализует спрайты - анимационные объекты с автоматически меняющимися кадрами.
 
Исполнители
 
Robot - исполнитель робот действует на прямоугольном клеточном поле. Между некоторыми клетками, а также по периметру поля находятся стены. Основная цель Робота — закрасить указанные клетки и переместиться в конечную клетку.
 
 
Drawman - исполнитель чертёжник предназначен для построения рисунков и чертежей на плоскости с координатами. Чертежник имеет перо, которое он может поднимать, опускать и перемещать. При перемещении опущенного пера за ним остается след.
 
 
Исполнитель чертёжник
 
Исполнитель чертёжник открывает доступ к следующим командам:
 
Field(n,m) - создаёт поле размером n на m клеток.
ToPoint(x,y) – перемещает перо Чертежника в точку (x,y);
OnVector(a,b)– перемещает перо Чертежника на вектор (a,b);
PenUp – поднимает перо Чертежника;
PenDown – опускает перо Чертежника.
 
Для вызова модуля исполнителя Чертежник используется следующий шаблон программы:
 
Код
Uses Drawman;
Begin
 Field(n,m); // n и m - количество клеток по горизонтали и вертикали
End.
 
Пример. Ниже вы видите код программы, которая выполняет построение нескольких линий. Попробуйте сами разобраться в коде данной программы.
 
Код
Uses Drawman;
Begin
 Field(10,5);
 ToPoint(1,1);
 PenDown;
 ToPoint(9,1);
 PenUp;
 ToPoint(2,2);
 PenDown;
 ToPoint(9,4);
 PenUp;
 ToPoint(0,0);
End.
 
Результат работы программы:
 
 
Ваши вопросы и комментарии можете оставлять ниже.
Начинайте программировать прямо сейчас!
 
 
Категория: Первые шаги | Добавил: Decay_Dance (05.02.2014)
Просмотров: 3673 | Теги: Pascal, модули, первые шаги | Рейтинг: 5.0/1