Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Алгоритмы с ветвлением, Циклы

Алгоритмы с ветвлением, Циклы (Презентации)

PDF-файл Алгоритмы с ветвлением, Циклы (Презентации) Информатика (20897): Лекции - 1 семестрАлгоритмы с ветвлением, Циклы (Презентации) - PDF (20897) - СтудИзба2018-02-14СтудИзба

Описание файла

Файл "Алгоритмы с ветвлением, Циклы" внутри архива находится в папке "Презентации". PDF-файл из архива "Презентации", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МПУ. Не смотря на прямую связь этого архива с МПУ, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.

Просмотр PDF-файла онлайн

Текст из PDF

ПрограммированиеАлгоритмы с ветвлениемЦиклыЛинейные алгоритмыВсепрограммы(заисключениемперечисляющей все классы), которые мы досих пор рассматривали, были линейными:утверждения в них выполнялись в том порядкев котором они записаны в программе. Толькоочень простые программы могут бытьреализованы в таком виде.Алгоритмы с ветвлениямиГораздо чаще встречаются алгоритмы, вкоторых порядок вычисления зависит отвыполнениятогоилииногоусловия(логического выражения).Запомните: только false и nil трактуются какложныевлогическомконтексте.Всёостальное,чтовычисляется,являетсяистинным.Условный операторif логическое_выражение thenтело_оператораelsif логическое_выражение thenтело_оператора...elseтело_оператораendЛогические операторы в условномвыраженииRubyподдерживаетвсестандартныелогические операторы:and (и)or (или)! (отрицание)Операторы and и or имеют одинаковыйприоритет!== (операция сравнения на равенство)!= (операция сравнения на неравенство)Условный оператор (пример)a, b, c = 5, 7, 4if a>=b and a>=c thenputs aelsif b>=a and b>=c thenputs belseputs cendУсловный операторКонструкции elsif и else могут отсутствовать,например,a=4if a == 3 thenputs 'a равно 3'endУсловный операторЕсли тело условного оператора без блока elseсостоит из одного оператора, то удобноиспользовать модифицированный оператор if:a=4puts 'a равно 3' if a == 3Тернарный операторОператор, содержащий три части, выглядиттак:логическое_выражение ? выражение1 : выражение2a=5a > 5 ? a+=a : a*=aputs aВыбор из нескольких альтернативПри выборе из большего числа альтернативудобнееиспользовать операторcase.Стоящее после ключевого слова caseвыражение последовательно сравнивается свыражениями, стоящими после слов when дотех пор пока не совпадет с одним из них, послечего выполняется соответствующий фрагменткода.Выбор из нескольких альтернативcase выражениеwhen тест1 then...when тест2 then...when тестN then...else...endВыбор из нескольких альтернативi = gets.to_icase iwhen 0 ..

9puts "число однозначное"when 10 .. 99puts "число двузначное"when 100 .. 999puts "число трехзначное"elseputs "число огромное"endВ программе использован оператор.. (двоеточие),который возвращает диапазон целых чисел,заключенных между левым и правымоперандами (включая их самих). Оператор… (троеточие)возвращаетдиапазонцелыхчисел,заключенных между левым и правымоперандами не включая правый операнд.Выбор из нескольких альтернативПосле обработки соответствующегоблокакода управление передается на первый оператор вне оператораcase (в отличии оттаких языков как C, C++, Java).n=0case nwhen 0puts n; n+=1when 1puts n; n+=1when 2puts n; n+=1endЦиклы и итераторыДля задания повторяющихся действий вбольшинствеязыковпрограммированияиспользуются операторы цикла.В Rubyимеется два таких оператора: while и until, атакже большое количество итераторов (от анг.iterate - повторять).Оператор цикла whileОператор while выполняет операторы,составляющее его тело, ноль или более раз,до тех пор, пока истинно его условие,задаваемоенекоторымлогическимвыражением.while выражение do...тело цикла...endПример# Печать чисел от одного до 5 включительноi=1while i <= 5puts ii += 1endОператор цикла untilНегативнаяформаоператорациклазадается оператором until, тело котороговыполняется ноль или более раз до тех пор,пока его условие ложно.until выражение do...тело цикла...endПример# Печать чисел от одного до 5 включительноi=1until i > 5puts ii += 1endПравила записи циклаКак в цикле while, так и в цикле until ключевоеслово do может быть опущено, но при этом телоцикла должно начинаться с новой строки, как этобыло сделано в предыдущих примерах.

Сиспользованием слова do можно все тело цикларазместить на одной строке.# Вычисление суммы четных чисел в# диапазоне от 0 до 100:i, s = 0, 0while i < 101 do s += i; i += 2 endputs sБесконечные циклыПри работе с циклами программист обязанследитьзаизменениемоднойилинесколькимипеременнымицикла–величинами, фигурирующими в логическомусловии. Если «забыть» об изменении ихзначений, то цикл никогда не завершится –программа «зациклится».Бесконечные циклыi=0s=0while i < 101s = s+iendputs sВ одном из предыдущих примеров условиезавершение зависит отпеременной i.

Будет личто-нибудь напечатано врезультатеработыпрограммы, если программист «забыл» об изменении этой переменной?Прерывание работы программыВсе программы, которые Вам предстоитреализовывать, должны завершать своюработу практически мгновенно. Если этого непроизошло, то скорее всего у Вас проблемы сзавершением цикла. Прервите выполнениепрограммы нажатием комбинации клавишCtrl+D и добавьте вспомогательную печать втело цикла, которая поможет Вам найтиошибку.ПримерПрограмма печатает текущее время черезкаждые 5 секунд:while truet = Time.nowputs "#{t.hour} ч.

#{t.min} м. #{t.sec} с."sleep(5) # ждем 5 секундendИтераторыПомимо рассмотренных операторов цикла вRuby имеется большое число итераторов,также предназначенных для выполненияциклических действий. При их использованиинет необходимости «вручную» следить заизменением переменных цикла.Итератор each(набор_данных).each do |переменная|действияendИтератор each удобен при работе снаборами величин.

Это могут быть диапазоны,создаваемые операторами .. или ..., но чащевсего его используют при работе с массивами(разговор о них пойдет чуть позже).переменная на каждом проходе циклапринимает новое значение из набора_данных,пока не примет все значения.(1..10).each do |i|puts iends=0(1...100).each do |i|s += iendputs sИтератор forRuby позволяет записать итератор each вдругой,болееудобнойформесиспользованием ключевого слова for.for переменная in набор_данных doдействияendfor i in 1..10 doputs iends=0for i in 1...100 dos += iendputs sДосрочное прекращениевыполнения циклаПрекратитьвыполнение цикладосрочно можнопри помощиконструкции break.i, count = 0, 0while trueif i%3 == 0 and i%4 == 0puts icount += 1endbreakifcount==5Решим задачу:i+=1выписать первые 5endчисел кратных 3 и 4одновременно.ЗадачаВычислимсуммуцифр целого числа,введенного с клавиатуры.Напомним, что результат деления целого числа на целоетакже является целым числом, например, 1234/10 = 123.puts "Введите число"num = gets.to_isum = 0while num > 0sum += num%10num /= 10endputs sum.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее