русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Вложенное ветвление


Дата добавления: 2013-12-23; просмотров: 9711; Нарушение авторских прав


 

Любая ветвь может не быть линейным участком программы, а сама содержать ветвление. Такое ветвление называется вложенным (или множественным) ветвлением. Чаще вторично разветвляется ветка «нет». В качестве примера разберём простую задачу:

В первом магазине хозяйка приобрела a кг. огурцов. Их оказалось b штук. Во втором магазине на c кг. получилось d штук. В каком магазине огурцы крупнее?

Находим массу одного огурца в каждом магазине и сравниваем их.

 
 
program ogur; var a,b,c,d,m1,m2:real; begin write(’Введите массу и к-во огурцов из 1 магазина ’); readln(a,b); m1:=a/b; write(’Введите массу и к-во огурцов из 2 магазина ’); readln(c,d); m2:=c/d; if m1>m2 then writeln(’В первом магазине – крупнее.’) else if m1<m2 then writeln(’Во втором магазине – крупнее.’) else writeln(’Одинаковые’); end.    

 

 


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

if a > b then if x > 0 then writeln(’***’) else writeln(’ooo’);  
Не забывайте также, что любой else относится к последнему незакрытому if. Напри­мер, в показанном справа фрагменте else стоит под первым if, но относится ко второму. Это может привести к ошибкам. Исправит положение только правильное использование пары команд begin и end (так называемых «операторных скобок»), как показано во втором фрагменте.

if a > b then begin if x > 0 then writeln(’***’); end else writeln(’ooo’);  
Рисунок, изображённый над программой, на котором
специальными значками и стрелками изображена последовательность действий (алгоритм) в программе, называется блок-схемой алгоритма. Программисты используют такие схемы для обсуждения алгоритма с непрограммистами или специалистами, использующими другие алгоритмические языки, а также для того, чтобы лучше продумать алгоритм, не отвлекаясь на мелкие детали и особенности языка программирования.



 

Вторая задача: Определить, является ли одно из двух введённых чисел делителем другого.

 
 
program deliteli; var a,b:integer; begin write(’Введите два целых числа: ’); readln(a,b); if a=b then writeln(’Числа равны’) else if (a mod b=0) then writeln(a,’ делится на ’,b) else if (b mod a=0) then writeln(b,’ делится на ’,a) else writeln(’Эти числа не делятся друг на друга’); end.

 

 


Эта программа работает с ошибкой, если одно из введённых чисел равно 0 (деление на 0 запрещено). Измените программу, сделав в начале дополнительную проверку этого случая.


 

Лаб. 4. Задачи на ветвление:

1. Программа вычисляет модуль введенного числа, не пользуясь стандартной функцией abs()

2. В 1 л тёплой воды можно растворить до 120 г поваренной соли. Растворится ли a кг соли в b л воды при тех же условиях?

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

4. Определить, лежит ли точка (x, y) внутри круга с центром в начале координат и радиусом 5.

5. На вывод одного пиксела видеоадаптер тратит 0,00000003 секунды. Разрешение экрана – a х b пикселов. Сколько времени понадобится для вывода всего кадра? Будет ли при этом хорошее качество мультипликации? (Если частота смены кадров меньше 50 кадров в секунду, качество плохое)

6. Даны координаты двух точек. Определить, какая ближе к началу координат.

7. Определить, является ли целое число N точным квадратом.

8. Поместится ли a кг апельсинов в b ящиков (вместимость ящика – c кг)?

9. Возможно ли разместить два файла (объёмом a и b Кбайт) на одной дискете (объёмом 1440 Кбайт)?

10. Хватит ли на просмотр фильма одного часа, если он состоит из k кадров, а в секунду показывается 25 кадров?

11. Первая цветочница продала R роз по 50 рублей за цветок, а вторая T тюльпанов по 30 рублей. У кого выручка больше?

12. Из банка на выплату зарплаты привезли a рублей. Хватит ли этой суммы, если на предприятии n работников, их средняя зарплата s рублей, а в кассе ещё имеется остаток k рублей?

13. Для ремонта проколотой шины после нанесения на место прокола каучуковой смеси её нужно выдерживать 50-60 минут при температуре 70-80 °С. Вулканизатор поддерживал температуру
t °С в течение m минут. Процесс вулканизации прошёл нормально?

14. Для полноценного питания коровы требуется 10 кг сена и 4 кг комбикорма в день. В наличии a кг сена и b кг комбикорма. На сколько дней этого хватит?

15. Первый абитуриент решил a упражнений по b задач в каждом, а второй – c упражнений по d задач. Кто из них лучше подготовился к поступлению в ВУЗ?

16. Сможет ли покупатель, располагающий суммой S рублей, приобрести a граммов конфет по цене b рублей за 1 кг?

17. Больному нужно ввести a см3 первого лекарства и b см3 второго. Хватит ли шприца ёмкостью 10 см3 для смеси этих лекарств?

18. Первое блюдо - 300 г борща. Второе блюдо – 250 г плова. В столовой приготовлено a кг борща и b кг плова. Сколько людей сможет накормить столовая полным обедом?

19. Войдёт ли в конверт размерами NxM открытка размерами RxP?

20. В секцию по баскетболу берут юношей не ниже 180 см. В прошлом году у Васи был рост h см, а за этот год он подрос на d см. Возьмут ли Васю теперь на баскетбол?


 

Лаб. 5. Задачи на ветвление с вычислениями:

1. Одна коробка с яйцами содержит 10 ячеек по 30 яиц в каждой. Поместятся ли a яиц в b коробок (уже имеющих пустые ячейки)? Если не поместятся, сообщить, сколько ещё требуется ячеек и коробок. Если останутся лишние коробки, сообщить, сколько осталось.

2. Определить, являются ли три введённых числа длинами сторон прямоугольного треугольника.

3. В котёл с 20 л воды всыпали m граммов соли. Норма для супа составляет от 10 до 12 г/литр. Определить, нормально ли посолена вода. Если недосолена, сообщить, сколько граммов соли нужно добавить до нормы. Если пересолена, – сколько литров воды нужно долить до нормальной концентрации.

4. После промывки шерсть сушат. Нормальная плотность шерсти, соответствующей требуемой влажности, составляет около 280 кг/м3. На текстильный завод поступило m тонн шерсти, объём которой составляет V м3. Определить соответствие сырья требуемой влажности.

5. Определить, лежит ли точка (x, y) внутри кольца с центром в начале координат, внутренним радиусом r1 и внешним радиусом r2

6. Врач прописал больному первого лекарства всего a таблеток, по b таблеток в день и второго лекарства c таблеток по d таблеток в день. На следующий день после того, как все лекарства будет приняты, больной должен прийти на приём. Через сколько дней больной попадёт на приём к врачу?

7. За первые 30 минут в Internet-клубе нужно платить по 80 копеек в минуту, а дальше по 60 копеек. Но если клиент работает без перерыва 5 часов, ему снижается дальнейшая оплата до 50 копеек в минуту. Сидоров работал a часов и b минут. Сколько ему нужно заплатить?

8. Поезд выехал в h1 часов и m1 минут. Поездка заняла h2 часов и m2 минут (меньше 1 суток). Во сколько часов и минут поезд приехал на станцию назначения? Не забыть, что в 24.00 время обнуляется. Часовые пояса не учитывать (счёт идёт по московскому времени).

9. 1 конфета «Мишка на севере» весит 26-30 граммов. «Ласточка» - 15-19 г. «Грильяж» - 20-25 г. Вася съел a одинаковых конфет, общий вес которых – b граммов. Что это были за конфеты? (не исключено, что не из этих трёх видов, а какие-либо другие).

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

11. Работа светофора запрограммирована следующим образом: Начиная с полуночи, 3 минуты горит зелёный свет, 1 минуту – жёлтый, 3 минуты – красный, 1 минуту – жёлтый. Затем всё начинается сначала. Дано вещественное число t, означающее время в минутах, прошедшее от полуночи. Определить, сигнал какого цвета горит в это время на светофоре.

12. Заданы координаты X1,Y1 левого верхнего угла и размеры A1 и B1 первого прямоугольника и координаты X2,Y2 и размеры A2 и B2 второго прямоугольника. Определить, помещается ли один из них целиком в другом (Стороны прямоугольников параллельны осям координат).

13. Время прибытия поезда на станцию h1 ч. и m1 м. Время отправления h2 ч. и m2 м. Человек пришёл на станцию в h3 ч. и m3 м. Попал ли он на этот поезд (или пришёл раньше или опоздал)?

14. Имеется два куска холста: 60х80 см и 70х70 см. Художник должен натянуть один из них на раму размером ax b см. Какой из них взять выгоднее, чтобы меньше холста пришлось отрезать? На подгиб берётся не менее 3 см. с каждой стороны. Если никакой холст не подходит, сообщить об этом.

15. Имеется три файла, размерами a, b и c Кбайт. На одной дискете помещается 1440 Кбайт. Войдут ли на неё все три файла? Если не войдут, проверить, можно ли разместить эти файлы на двух дискетах (Файлы не делить на части, а записывать только целиком).

16. Программа определяет, поместится ли круг, площадью S1 в квадрате, площадью S2.

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

18. Дано натуральное число n (n ≤ 9999). Верно ли, что все четыре цифры числа различны?

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

20. Найти координаты точек пересечения прямой y = ax+ b и окружности радиуса R с центром в точке (X, Y). Если точка одна или пересечений нет, сообщить об этом.


 



<== предыдущая лекция | следующая лекция ==>
Логические выражения | Как выбрать цикл?


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.