1. Программист сам должен знать решение задачи. Ведь программа — это инструкция по ее решению. Нельзя давать инструкцию, не зная, как решать. В нашем случае программист должен знать формулы для вычисления площади основания коробки и ее объема : площадь = ширина х толщина , объем = площадь х высота . 2. Нужно придумать имена переменным. Имя переменной должно говорить о ее смысле.
Если смыслом является ширина коробки, то не ленитесь и не называйте ее а, потому что через полгода, разбираясь в своей полузабытой программе, вы будете долго тереть лоб и думать – Что, черт возьми, я обозначил через а? Называйте ее shirina (если вы не знаете английского) или, к примеру, width (если знаете).
Так делают все профессиональные программисты (а они, как известно, терпеть не могут трудиться зря, значит, зачем-то это им нужно). Удовлетворимся такими именами: shirina — ширина tol — толщина visota — высота pl — площадь V — объем 3. Нужно определить, какого типа будут переменные. Поскольку ширина и толщина — целые, то и площадь будет целой. Высота и, следовательно, объем — вещественные.
ВАРИАНТ #9 ЕГЭ 2021 ФИПИ НА 100 БАЛЛОВ (МАТЕМАТИКА ПРОФИЛЬ)
Первые две строки программы будут такими: VAR shirina,tol,pl : Integer; visota,V : Real; 4. Перед вычислениями нужно задать исходные данные решения задачи. Вот следующие две строки программы: BEGIN shirina:=8; tol:=5; visota:=12.41;
5. Теперь нужно задать компьютеру действия, которые нужно проделать с исходными данными, чтобы получить результат.
- В углу прямоугольного двора размером 50х30 стоит прямоугольный дом размером 20х10. Подсчитать площадь дома, свободную площадь двора и длину забора. Примечание: в углу, где дом, забора нет.
- Радиус окружности равен 800. Вычислить длину окружности и площадь круга. Результаты печатать с 5 знаками после десятичной точки.
- Автомобиль 3 часа ехал со скоростью 80 км/час и 2 часа со скоростью 90 км/час. Вычислить среднюю скорость автомобиля (она равна суммарному пути, деленному на суммарное время).
02.06.2015 1.01 Mб 2 TK_(01.01.2013).rtf
02.06.2015 1.01 Mб 3 TK_(01.07.2012).rtf
Ограничение
Для продолжения скачивания необходимо пройти капчу:
Источник: studfile.net
Подсчитать площадь дома, свободную площадь двора и длину забора — Turbo Pascal
12)В углу прямоугольного двора размером 50х30 стоит прямоугольный дом размером 20х10. Подсчитать площадь дома, свободную площадь двора и длину забора. Примечание: в углу, где дом, забора нет.
var dvor_d,dvor_w,dom_d,dom_w,dom_s,zabor_d:integer; begin dvor_d:=50; dvor_w:=30; dom_d:=20; dom_w:=10; dvor_s:=(dvor_d+dvor_w)*2; dom_s:=(dom_d+dom_w)*2; zabor_d:=dvor_s-dom_s/2; writeln:=(dvor_s)
Почему ошибку пишет?
Код к задаче: «Подсчитать площадь дома, свободную площадь двора и длину забора»
Листинг программы
var dvor_d,dvor_w,dom_d,dom_w,dom_s,zabor_d:real; . writeln(dvor_s);
Источник: studassistent.ru
Докажите, что данное число можно представить в виде квадрата натурального числа ➜ Задача от Звавича
Порядок составления простой программы
Известны размеры спичечной коробки: высота — 12.41 см., ширина — 8 см., толщина — 5 см. Вычислить площадь основания коробки и ее объем.
Порядок составления программы:
1. Программист сам должен знать решение задачи. Ведь программа — это инструкция по ее решению. Нельзя давать инструкцию, не зная, как решать.
В нашем случае программист должен знать формулы для вычисления площади основания коробки и ее объема: площадь = ширина х толщина, объем = площадь х высота.
2. Нужно придумать имена переменным. Имя переменной должно говорить о ее смысле. Если смыслом является ширина коробки, то не ленитесь и не называйте ее а, потому что через полгода, разбираясь в своей полузабытой программе, вы будете долго тереть лоб и думать – Что, черт возьми, я обозначил через а? Называйте ее shirina (если вы не знаете английского) или, к примеру, width (если знаете). Так делают все профессиональные программисты (а они, как известно, терпеть не могут трудиться зря, значит, зачем-то это им нужно).
Удовлетворимся такими именами:
shirina — ширина
tol — толщина
visota — высота
pl — площадь
V — объем
3. Нужно определить, какого типа будут переменные. Поскольку ширина и толщина — целые, то и площадь будет целой. Высота и, следовательно, объем — вещественные. Первые две строки программы будут такими:
VAR shirina,tol,pl: Integer;
visota,V: Real;
4. Перед вычислениями нужно задать исходные данные решения задачи. Вот следующие две строки программы:
shirina:=8; tol:=5; visota:=12.41;
Теперь нужно задать компьютеру действия, которые нужно проделать с исходными данными, чтобы получить результат.
pl:= shirina * tol;
V:= pl * visota;
6. После получения результата его нужно напечатать. Действительно, все операторы присваивания компьютер выполняет «в уме». После их выполнения в ячейках памяти pl и V будут находиться числовые результаты решения задачи. Чтобы их узнать, человек в нашем случае может использовать оператор WriteLn, после чего программу можно заканчивать:
WriteLn (pl,’ ‘, V:10:3)
Обратите внимание, что поскольку переменная V имеет тип Real, для ее вывода мы использовали формат (см.4.10).
Вот как будет выглядеть наша программа целиком:
VAR shirina,tol,pl:Integer;
BEGIN
shirina:=8; tol:=5; visota:=12.41;
pl:= shirina * tol;
WriteLn (pl,’ ‘, V:10:3)
END.
Программа напечатает два числа: 40 и 496.400.
Эту задачу можно было бы решить и гораздо более короткой программой:
BEGIN WriteLn (8 * 5, ‘ ‘, 8 * 5 * 12.41:10:3) END.
А еще быстрее эту задачу решить в уме. Однако, соблюдение приведенного мной порядка составления программы облегчит вам в дальнейшем программирование реальных задач для компьютера.
Написать программы для решения следующих задач:
12) В углу прямоугольного двора размером 50х30 стоит прямоугольный дом размером 20х10. Подсчитать площадь дома, свободную площадь двора и длину забора. Примечание: в углу, где дом, забора нет.
13) Радиус окружности равен 800. Вычислить длину окружности и площадь круга. Результаты печатать с 5 знаками после десятичной точки.
14) Автомобиль 3 часа ехал со скоростью 80 км/час и 2 часа со скоростью 90 км/час. Вычислить среднюю скорость автомобиля (она равна суммарному пути, деленному на суммарное время).
Операторы ввода данныхReadLnи Read.
Задача: Сложить два числа — 20 и 16.
Сравним две программы решения этой задачи:
| VAR a,b: Integer; BEGIN a:=20; b:=16; WriteLn (a+b) END. | VAR a,b: Integer; BEGIN ReadLn (a,b); WriteLn (a+b) END. |
Программы отличаются только одной строкой. Первая программа не требует пояснений — она печатает число 36. Во второй программе нигде не сказано, чему равны a и b, а вместо этого включен оператор ReadLn. Поговорим о нем.
ReadLn читается «рид’лайн», переводится «читай строку». Он приказывает компьютеру остановиться и ждать, когда человек введет с клавиатуры определенную информацию, после чего продолжить работу. В частности, ReadLn (a,b) будет ждать ввода двух целых чисел.
Таким образом, если первая программа после запуска будет работать без остановки до самого конца и без хлопот выдаст результат, то вторая программа на операторе ReadLn остановится и будет ждать. Во время этого ожидания человек должен на клавиатуре набрать число 20 (так как первым в списке оператора ReadLn стоит a), затем нажать клавишу пробела, затем набрать 16 и нажать клавишу Enter.
Паскаль воспринимает нажатие пробела, как сигнал человека о том, что закончен набор на клавиатуре одного числа и сейчас начнется набор другого. После набора на клавиатуре последнего числа необходимо нажать клавишу Enter в знак того, что ввод чисел для данного оператора ReadLn закончен и компьютер может продолжать работу. В соответствии с этим компьютер сразу же после нажатия Enter прекращает ожидание и прежде всего направляет число 20 в память, в ячейку a, число же 16 — в ячейку b. На этом он считает выполнение оператора ReadLn законченным и переходит к следующему оператору — WriteLn. В результате будет напечатано число 36.
Таким образом, обе программы делают одно и то же. Зачем же тогда применять ReadLn вместо оператора присваивания? Ведь первая программа понятней, да и работает без остановки. Одна из причин в том, что программа с ReadLn гораздо универсальнее, «свободнее»: если первая программа решает задачу сложения только двух конкретных чисел, то вторая программа складывает два любых числа.
Вторая причина в том, что программа с ReadLn позволяет программисту во время написания программы не задумываться над конкретными значениями исходных данных, оставляя эту головную боль на момент выполнения программы. Но самая главная причина в том, что ReadLn позволяет человеку общаться с компьютером, вести с ним диалог во время выполнения программы.
В подтверждение важности первой причины напишем программу для решения следующей задачи: В зоопарке три слона и довольно много кроликов, причем количество кроликов часто меняется. Слону положено съедать в сутки сто морковок, а кролику — две. Каждое утро служитель зоопарка сообщает компьютеру количество кроликов. Компьютер в ответ на это должен сообщить служителю общее количество морковок, которые сегодня нужно скормить кроликам и слонам.
Придумаем имена переменным величинам:
kol_krol — количество кроликов в зоопарке
kol_slon — количество слонов в зоопарке
norma_krol — сколько морковок в день положено кролику
norma_slon — сколько морковок в день положено слону
vsego — сколько всего требуется морковок
А теперь напишем программу:
VAR kol_krol,kol_slon,norma_krol,norma_slon,vsego:Integer;
BEGIN
vsego:= norma_krol * kol_krol + norma_slon * kol_slon;
END.
Написав программу, программист вводит ее в компьютер, отлаживает и записывает на диск. На этом его миссия закончена. Утром служитель, пересчитав кроликов и найдя, что их 60 штук, подходит к компьютеру и запускает программу на выполнение.
Компьютер, выполнив автоматически первые два оператора (norma_krol:=2 и norma_slon:=100), останавливается на операторе ReadLn. Служитель вводит число 60, после чего компьютер посылает это число в ячейку kol_krol и переходит к выполнению следующего оператора (kol_slon:=3). В конце концов на мониторе появится ответ: 420.
Вот схематическое изображение процесса выполнения программы:
| ПОРЯДОК ИСПОЛНЕНИЯ ОПЕРАТОРОВ | ЧТО НАХОДИТСЯ В ЯЧЕЙКАХ ПАМЯТИ | |||
| kol_krol | kol_slon | norma_krol | norma_slon | vsego |
| norma_krol:=2 | ? | ? | ? | ? |
| norma_slon:=100 | ? | ? | ? | |
| ReadLn (kol_krol) | ? | ? | ||
| kol_slon:=3 | ? | |||
| vsego:=norma_krol | ||||
| WriteLn (vsego) |
На следующее утро, обнаружив, что 5 кроликов продано другому зоопарку, служитель запускает ту же самую программу, вводит число 55 и получает ответ — 410.
На этом несколько фантастичном примере я хотел показать, что применение ReadLn позволяет создавать программы, которые, оставаясь приятно неизменными, позволяют легко решать задачу в любое время для любых значений исходных данных. Можно было бы пойти по другому пути — вместо ReadLn использовать оператор присваивания, например kol_krol:=60. Но в этом случае программист каждое утро должен был бы бежать в зоопарк, чтобы исправлять в программе этот оператор присваивания.
Оператор ReadLn можно писать и без скобок, просто так: ReadLn. Выполняя оператор в такой записи, компьютер остановится и будет ждать, но не ввода какой-то информации, а просто нажатия на клавишу Enter. Таким образом, это просто оператор создания паузы в процессе выполнения программы. О том, зачем нужны паузы, поговорим чуть ниже.
Кроме оператора ReadLn для ввода данных применяется также оператор Read. Для начинающего программиста различия в их применении несущественны. Мы будем пока употреблять только ReadLn. Оператор Read без скобок паузу не создает.
Интерфейс пользователя
Когда служитель запускает программу и она делает паузу на операторе ReadLn(kol_krol), служитель видит перед собой пустой экран монитора, на котором нет никаких намеков на приглашение вводить какую-либо информацию. Посторонний человек ни за что и не догадается, что компьютер чего-то ждет. Это не очень удобно. Было бы гораздо лучше, если бы на экране все-таки можно было в нужный момент видеть подходящее приглашение, чтобы служитель с раннего утра чего-нибудь не перепутал.
Это же касается и выдачи результатов. На пустом экране появляется сухое число 420. Посторонний человек ни за что не поймет, какой оно имеет смысл: то ли это 420 рублей, то ли 420 зоопарков. Говорят, что у нашей программы неудобный интерфейс пользователя, то есть человеку, использующему нашу программу, неудобно с ней общаться. Слово «интерфейс» можно перевести, как «взаимодействие», в данном случае взаимодействие человека с компьютером.
Дополним чуть-чуть нашу программу, чтобы интерфейс стал более удобным:
VAR kol_krol,kol_slon,norma_krol,norma_slon,vsego: Integer;
BEGIN
WriteLn (‘Введите, пожалуйста, количество кроликов’);
vsego:= norma_krol * kol_krol + norma_slon * kol_slon;
WriteLn(‘Вам всего понадобится ‘,vsego, ‘ морковок’);
END.
Эта программа будет работать точно так же, как и предыдущая, с тем отличием, что во время паузы, вызванной оператором ReadLn (kol_krol), на экране будет гореть удобная надпись —
Источник: infopedia.su