Часто, при программировании задач, нужно, чтобы одна и та же последовательность команд выполнялась несколько раз. Такой процесс называется циклическим. Алгоритм, в котором определенная последовательность команд повторяется несколько раз с новыми входными данными называется циклическим.
Для реализации циклического процесса, в языках программирования применяются циклы. Язык программирования C/C++ имеет в наличии удобные для работы операторы цикла.
2. Виды операторов цикла в языке C++
В языке C++ существует 3 вида операторов цикла:
- цикл for ;
- цикл while с предусловием;
- цикл do…while с постусловием.
Каждый из операторов цикла имеет свои особенности применения. Любой из вышеприведенных операторов цикла может быть заменен другим.
3. Цикл for. Общая форма оператора цикла for
В языке C++ цикл for может иметь очень широкую реализацию и применение. Цикл for еще называется циклом с параметром.
Общая форма оператора цикла for :
Цикл For Each — Новый курс VBA (9)
for (инициализация; выражение; прирост) < // последовательность операторов // . >
- инициализация – операция присваивания, в которой устанавливается начальное значение переменной цикла. Эта переменная есть счетчиком, который управляет работой цикла. Количество переменных, управляющих циклом for, может быть две и больше;
- выражение – условное выражение, в котором проверяется значение переменной цикла. На этом этапе определяется дальнейшее выполнение цикла;
- прирост – определяет, как будет изменяться значение переменной цикла после каждой итерации.
Цикл for выполняется до тех пор, пока значение выражение равно true. Как только значение выражение станет false, выполнение цикла прекращается и выполняется оператор, который следует за циклом for.
4. Примеры использования оператора цикла for
Пример 1. Найти сумму всех целых чисел от 100 до 300. Фрагмент кода, который решает данную задачу.
// сумма чисел от 100 до 300 int sum; int i; sum = 0; for (i = 100; i// sum = 40200
Пример 2. Дано натуральное число n . Вычислить сумму:
Фрагмент кода, который решает данную задачу.
// s = 1 + 1/2 + 1/3 + . + 1/n int n; float s = 0; int i; // ввод значения n n = 4; for (i = 1; i// s = 2.08333
В данном примере, чтобы получить вещественное значение, вместо числа 1 (целый тип) вводится число 1.0 (вещественный тип). Операция деления
дает вещественный результат.
Пример 3. Вычислить сумму
Фрагмент кода, который решает данную задачу.
float s; int i; s = 0; for (i=50; i>=1; i—) s = i + Math::Sqrt(s); s = Math::Sqrt(s); // s = 1.7579
В данном примере значение счетчика i в цикле for изменяется по убыванию. Это значение уменьшается на 1 в каждой итерации цикла. При решении подобных задач значение счетчика цикла должно изменяться от последнего к первому значению. В данном случае от 50 до 1.
В вычислениях использована функция Sqrt() из библиотеки Math.
Excel VBA. Цикл For…Next, For Each…Next (урок 7)
5. Какие существуют варианты реализации цикла for ?
Цикл for может иметь несколько разновидностей реализации. Количество переменных, управляющих циклом for может быть одна, две и более.
В цикле for может отсутствовать любой из элементов заголовка цикла:
- инициализация;
- выражение;
- прирост.
Пример оператора цикла for , в котором есть 2 управляющие переменные. Найти значения произведения:
D = (1 + cos(9)) · (2 + cos(8)) · … · (9 + cos(1))
Фрагмент кода, который решает данную задачу.
// D = (1 + cos(9))*(2 + cos(8))* . *(9 + cos(1)) int i, j; float d; d = 1; for (i = 1, j = 9; i
В вышеприведенном фрагменте кода в цикле for используются две переменные, которые изменяют свое значение ( i , j ).
6. Цикл while . Общая форма
Цикл while называется циклом с предусловием. Общая форма цикла while следующая:
while (выражение) < // последовательность операторов // . >
где выражение – любое допустимое выражение в языке C++. Последовательность операторов выполняется до тех пор, пока условное выражение возвращает значение true . Как только выражение становится равным false , выполнение цикла while прекращается и управление передается следующему за циклом while оператору.
7. Примеры использования оператора цикла while
Пример 1. Дано вещественное число a . Найти такое наименьшее n , при котором
Соображения. В начале значение суммы есть меньше чем значение a . При прохождении каждой итерации значение суммы постепенно увеличивается. В какой-то момент (при каком-то значении n ) эта сумма станет выше значения a . Этот момент (значение n ) нужно зафиксировать. Для вычисления n , удобно подходит цикл while .
Фрагмент кода, который решает данную задачу.
float a; int n; float sum; // ввод значения a a = 2.2; n = 1; sum = 1.0/n; while (sum < a) < n++; sum = sum + 1.0/n; >// n = 5; sum = 2.283334
Пример 2. Дано натуральное число. Определить количество цифр 3 в нем.
Фрагмент кода, который решает данную задачу.
// количество цифр 3 в числе int n; // заданное натуральное число int k; // количество цифр 3 в числе int t, d; // дополнительные переменные // ввод значения n n = 12343; t = n; // делаем копию из n k = 0; while (t>0) < d = t % 10; // выделить последнюю цифру if (d == 3) k++; t = t / 10; // уменьшить разрядность числа > // k = 2
В данном примере, значение исходного числа будет делиться на 10 при каждой итерации. Таким образом, будет уменьшаться разрядность числа. На каждой итерации, с помощью операции % языка C++ берется остаток от деления на 10, то есть определяется последняя цифра числа. Если эта цифра равна 3, то счетчик k увеличивается на 1.
8. Общая форма оператора цикла do…while
Цикл do … while целесообразно использовать в случаях, когда итерацию нужно сделать хотя бы 1 раз. В отличие от циклов for и while , в цикле do…while условие проверяется при выходе из цикла (а не при входе в цикл). Цикл do…while еще называется циклом с постусловием.
Общая форма оператора цикла do…while :
do < // последовательность операторов // . > while (выражение);
где выражение – условное выражение, в котором проверяется значение переменной цикла. На этом этапе определяется дальнейшее выполнение цикла.
Фигурные скобки в этом цикле необязательны.
Цикл работает следующим образом. Сначала происходит выполнение тела цикла. Потом проверяется значение выражение (условное выражение). Если значение выражение есть истинным ( true ), выполняется снова тело цикла. Как только значение выражение станет false , выполнение цикла прекращается
9. Примеры использования оператора цикла do…while
Пример. Используя цикл do…while , найти значение суммы:
S = 1 + 3 + … + 99
Фрагмент кода, который решает данную задачу.
// s = 1 + 3 + . + 99 int t; int s; s = 0; t = 1; do < s = s + t; t = t + 2; >while (t<=99); // s = 2500
10. Вложенные циклы. Примеры использования
Вложенные циклы могут быть использованы, например, при работе с двумерными (многомерными) массивами (обнуление массива, вычисление сумм, произведений и прочее).
Пример 1. Вычислить произведение
D = 1 · (1 + 2) · (1 + 2 + 3) · … · (1 + 2 + … + 9)
Фрагмент кода, который решает данную задачу.
// D = 1 * (1+2) * (1+2+3) * . * (1+2+. +9) float d; // результат — произведение int i, j; // счетчики циклов int s; // дополнительная переменная d = 1; for (i = 1; ifor (j = 1; j // d = 2.571912E+09
В данном примере в цикле for со счетчиком i выполняется цикл for со счетчиком j .
Пример 2. Дан двумерный массив целых чисел размером 6×9. Записать во все элементы массива значение 5.
int M[6][9]; // двумерный массив целых чисел int i, j; for (i=0; ifor (j=0; j
11. Что такое бесконечный цикл?
Бесконечный цикл – это цикл, который никогда не заканчивается.
При программировании циклических процессов, программист по ошибке может написать код цикла, который никогда не заканчивается.
Кроме того, иногда нужно, чтобы циклы содержали код специального завершения с помощью инструкции break .
Пример 1. Бесконечный цикл с оператором for :
for (; 😉 < // последовательность операторов // . >
Пример 2. Бесконечный цикл while .
int x; x = 5; while (x<10) < // бесконечный цикл while, значение x не возрастает, // условие x >
Вышеприведенный фрагмент кода, с логической точки зрения, есть ошибочным. Такой цикл выполняется без конца. Так как значение переменной x не возрастает. Это значит, что x всегда будет меньше 10.
Связанные темы
- C++ . Оператор условного перехода if
- C++ . Оператор выбора switch
- Delphi . Циклы. Операторы завершения цикла
Источник: www.bestprog.net
Итоговый вариант 1. Итоговый тест по информатике. 11 класс
Единственный в мире Музей Смайликов
Самая яркая достопримечательность Крыма
Скачать 19.7 Kb.
Итоговый тест по информатике.
- С помощью какой функции можно выделить только целую часть вещественного числа и отбросить его дробную часть?
- Тип переменнойProm,значение которой вводится в этом фрагменте программы?
Prom = Input Box (ʹʹВведите значение P=ʹʹ);
IF Not Is Numeric (Prom) Then;
MsgBox (ʹʹПовторите ввод!ʹʹ);
Loop Until Is Numeric (Prom).
- В каком из вариантов переменная объявлена (описана) явно?
Б) Dim X As Byte;
В) Public Z As Long;
- Назовите вариант , в котором идентификаторы А и В объявлены константами?
Б) Public Const a=ʹʹзимаʹʹ, Const B as Single=1.25;
В) Const B=7, Dim A=ʹʹзимаʹʹ;
- Какой тип переменной может присваиваться, если она может быть числом или строкой?
- Тип переменнойSв выраженииS=23mod4+23410+42mod2+123410.
- Каким образом может быть продолжена строка описания переменнойDimStAs?
- С помощью какой функции можно вычислить длину строки?
- Выберите вариант записи чисел, соответствующий типуInteger.
А) ʹʹ2345ʹʹ ; 43; -1Е03;
- Определите начальное значение Х при выполнении алгоритма (Y=X+6 :X=Y:Y=X+Y), значение переменнойY=14.
- Где хранится код программы во время ее выполнения?
- Действие алгоритма:N=0Y=0 начало цикла покаNКоличество товара стоимостьюMрублей за штуку, которое может купить покупатель, имеющийNрублей, равно…
- Фрагмент программы начало цикла дляI=1 доNвывод A; A=A+D; Конец цикла выводит.
Б) Сумму D чисел, начиная с А, с шагом N;
В) N чисел, начиная с А, с шагом D;
- Фрагмент программы вычисляет еслиXПравильная запись выражения (ab–c) / (a+c) / 2bcна языке программирования.
- Какого типа цикл использован в данном фрагменте программы?
Prom = Input Box (ʹʹВведите значение P=ʹʹ);
IF Not Is Numeric (Prom) Then;
MsgBox (ʹʹПовторите ввод!ʹʹ);
Loop Until Is Numeric (Prom).
- Функция, отделяющая целую часть вещественного числа без округления.
- Номера элементов заданного массива удовлетворяющие условию(A(i) mod 2 0) and (A(i) > 0).
Источник: topuch.com
Информатика_ Конспекты лекций
Для установки и изменения размерности массива без потери его содержимого применяется инструкция ReDim Preserve<Имя массива>() Для определения параметров динамического массива используются функции: LBound(<Имя>[,]) Эта функция возвращает нижнюю границу указанной размерности массива. Ubound(<Имя>[,]) Данная функция возвращает верхнюю границу указанной размерности массива. Если размерность не указана, то подразумевается значение, равное 1. Пример : Sub Mas4() Dim a() As Integer Dim i As Integer, k As Integer, j As Integer, N As Integer Dim prom As Variant WorkSheets(“Лист1”).Select Cells.Clear k=2 i=0 Do Prom=InputBox(“Введите количество элементов N=) If Not IsNumeric(prom) Then MsgBox(“Повторите ввод!”) Loop Until IsNumeric(prom) N=prom ReDim a(1 to N) As Integer ‘Устанавливается фактическая размерность массива a ReDim Preserve a(1 to N) As Integer ‘Это другой вариант установки размерности массива а с сохранением значений его элементов Do‘Формирование массива а a(i)=Int(Rnd(i)*100) i=i+1 Loop Until i=N For j=1 To N ‘Вывод массива a на рабочий лист Cells(k,j+1)=a(j) Next j End Sub Array() 171
С помощью такой инструкции создается массив типа Variant. Список аргументов представляет разделенный запятыми список значений, присваиваемых элементам массива. Пример : Dim День As Variant День=Array(“Пн”, “Вт”, “Ср”, “Чт”, “Пт”, “Сб”) IsArray(<Имя переменной>) Эта функция используется для проверки факта, является ли переменная типа Variant массивом.
Она возвращает значение True, если переменная является массивом, и False в противном случае. Erase() С помощью этой инструкции повторно инициализируются элементы статических массивов и освобождается память, отведенная для динамических массивов. Список представляет собой имена очищаемых массивов, разделенных запятой.
В статических массивах их элементам вместо чисел присваиваются нулевые значения, а строки переменной длины становятся пустыми. В массивах типа Variant каждому элементу присваивается значение Empty. 6. Контрольные вопросы 1) Выберите вариант записи чисел, соответствующий типу Integer. а) 123; -12; 0,001 б) 24,1; 1E03 в) “2345”; 43; -1E03 г) 123; -12 2) В каком из вариантов переменные А и В целого типа описаны (объявлены) явно? а) Dim A, B б) Dim A as Integer, B as Byte в) Dim A as Integer, B as Single г) Dim A as Long, B as Single 3) Назовите вариант, в котором идентификаторы A и B объявлены константами. а) Dim B=7, A=“зима” б) Public B=7, A=“зима” в) Const B=7, Dim A=“зима” г) Public Const a= “зима”, Const B as Single=1.25 4) Какого типа значения возвращает функция IsNumeric()? 5) Для какого из вариантов заголовков передача аргументов A и B в процедуру будет организована по ссылке? а) Sub pr(ByRef A as Long, B as String) … end Sub б) Sub pr(ByVal A as Long, ByRef B as String) … end Sub в) Sub pr(ByVal A as Long, ByVal B as String) … 172
end Sub г) Sub pr( A as Long, ByVal B as String) … end Sub 6) Для какого из вариантов заголовков передача аргументов A и B в процедуру будет организована по значению? а) Sub pr(ByRef a as Long, b as String) … end Sub б) Sub pr(ByVal a as Long, ByRef b as String) … end Sub в) Sub pr(ByVal a as Long, ByVal b as String) … end Sub г) Sub pr( a as Long, ByVal b as String) … end Sub 7) Укажите вариант записи условного оператора в полной форме. а) if x<>0 then y=x/sin(x) б) if x<>0 then y=x/sin(x) else y=1 end if в) if x<>0 then y=x/sin(x) else y=1 8) Какой из условных операторов содержит сложное условие, состоящее из двух простых, соединенных логической операцией « И »? а) if x>-1 and x<>0 then y=ln(1+x) б) if x>-1 end x<>0 then y=ln(1+x) в) if x>-1 or x<>0 then y=ln(1+x) г) if x>-1 and not x=0 then y=ln(1+x) 9) Чем является конструкция “7359”? а) числом, б) именем, в) строкой, г) недопустимой записью? 10) Какой результат получится при вычислении выражения 253 10?
11) Какой результат получится при вычислении выражения 258 mod 10? 12) В каком из вариантов переменная объявлена (описана) явно? а) Private x б) r As Date в) Dim x As Byte г) Public Z As Long 13) Какая функция возвращает код символа? 14) С помощью какой функции можно выделить только целую часть вещественного числа и отбросить его дробную часть? 15) Какого типа цикл использован в данном фрагменте программы?
Do Prom = InputBox (“Введите значение P=”) IF Not IsNumeric(Prom) Then MsgBox(“Повторите ввод!”) Loop Until IsNumeric (Prom) 16) Какая функция возвращает символ по его коду? 17) Как называются переменные, объявленные в теле подпрограммы-функции? 18) Какого типа цикл использован в данном фрагменте программы? While x
33) С помощью каких ключевых слов определяется область действия переменных? а) Dim, Variant б) Dim, As, To в) Public, Private, Static, Dim г) Public, Private, Static, Dim, Const 34) Назовите опцию, требующую явного описания всех используемых переменных и констант. 35) С помощью какого ключевого слова объявляются переменные и константы, сохраняющие свои значения до конца выполнения программы? 175
Тема 14. Компьютерные сети 1. Компьютерные сети 1.1. Классификация компьютерных сетей 1.2. Топология локальных сетей 1.3. Понятие о глобальных сетях 1.4. Контрольные вопросы 2. Сеть Интернет 2.1. Интересные факты 2.2.
Основные понятия сети Интернет 2.3. Протоколы передачи данных 2.3.1. Протокол TCP/ IP 2.3.2. Протокол HTTP 2.3.3. Протокол FTP 2.3.4.
Почтовый протокол POP3 2.3.5. Протокол электронной почты SMTP 2.3.6. Протокол обмена управляющими сообщениями ICMP 2.4. Система адресации 2.5. Контрольные вопросы 1. Компьютерные сети Одна из основных потребностей человека – потребность в общении.
Универсальным средством общения являются коммуникации, обеспечивающие передачу информации с помощью современных средств связи, включающих компьютер. Общая схема передачи информации такова: источник информации — канал связи — приемник (получатель) информации Основными устройствами для быстрой передачи информации на большие расстояния в настоящее время являются телеграф, радио, телефон, телевизионный передатчик, телекоммуникационные сети на базе вычислительных систем.
Передача информации между компьютерами существует с самого момента возникновения ЭВМ. Она позволяет организовать совместную работу отдельных компьютеров, решать одну задачу с помощью нескольких компьютеров, совместно использовать ресурсы и решать множество других проблем. Под компьютерной сетью понимают комплекс аппаратных и программных средств, предназначенных для обмена информацией и доступа пользователей к единым ресурсам сети. Компьютерная сеть (вычислительная сеть, сеть передачи данных) — система связи компьютеров и/или компьютерного оборудования (серверы, маршрутизаторы и другое оборудование). Для передачи информации могут 176
быть использованы различные физические явления, как правило — различные виды электрических сигналов, световых сигналов или электромагнитного излучения. Основное назначение компьютерных сетей — обеспечить совместный доступ пользователей к информации (базам данных, документам и т.д.) и ресурсам (жесткие диски, принтеры, накопители CD-ROM, модемы, выход в глобальную сеть и т.д.).
Абоненты сети – объекты, генерирующие или потребляющие информацию. Абонентами сети могут быть отдельные ЭВМ, промышленные роботы, станки с ЧПУ (станки с числовым программным управлением) и т.д. Любой абонент сети подключён к станции. Станция – аппаратура, которая выполняет функции, связанные с передачей и приёмом информации.
Для организации взаимодействия абонентов и станции необходима физическая передающая среда. Физическая передающая среда – линии связи или пространство, в котором распространяются электрические сигналы, и аппаратура передачи данных. Одной из основных характеристик линий или каналов связи является скорость передачи данных (пропускная способность).
Скорость передачи данных — количество бит информации, передаваемой за единицу времени. Обычно скорость передачи данных измеряется в битах в секунду (бит/с) и кратных единицах Кбит/с и Мбит/с. Соотношения между единицами измерения: 1 Кбит/с =1024 бит/с; 1 Мбит/с =1024 Кбит/с; 1 Гбит/с =1024 Мбит/с. На базе физической передающей среды строится коммуникационная сеть.
Таким образом, компьютерная сеть – это совокупность абонентских систем и коммуникационной сети. 1.1. Классификация компьютерных сетей Для классификации компьютерных сетей используются разные признаки, выбор которых заключается в том, чтобы выделить из существующего многообразия такие, которые позволили бы обеспечить данной классификационной схеме такие обязательные качества: • возможность классификации всех, как существующих, так и перспективных, компьютерных сетей; • дифференциацию существенно разных сетей; 177
• однозначность классификации любой компьютерной сети; • наглядность, простоту и практическую целесообразность классификационной схемы. Определенное несоответствие этих требований делает задание по выбору рациональной схемы классификации компьютерной сети достаточно сложной, такой, которая не нашла до этого времени однозначного решения.
В основном компьютерные сети классифицируют по признакам структурной и функциональной организации. По назначению компьютерные сети распределяются на: • вычислительные; • информационные; • смешанные. Вычислительные сети предназначены главным образом для решения заданий пользователей с обменом данными между их абонентами.
Информационные сети ориентированы в основном на предоставление информационных услуг пользователям. Смешанные сети совмещают функции первых двух.
По территориальной распространенности сети распределяются на: персональная сеть, предназначенная для взаимодействия различных устройств, принадлежащих одному владельцу; локальные сети, имеющие замкнутую инфраструктуру до выхода на поставщиков услуг. Такая сеть может представлять собой и маленькую офисную сеть, и сеть уровня большого завода, занимающего несколько сотен гектаров.
Зарубежные источники дают даже близкую оценку — около шести миль (10 км) в радиусе. Локальные сети являются сетями закрытого типа, доступ к ним разрешен только ограниченному кругу пользователей, для которых работа в такой сети непосредственно связана с их профессиональной деятельностью; кампусная сеть, объединяющая локальные сети близко расположенных зданий; корпоративная сеть, объединяющая нескольких сетей, каждая из которых может быть построена на различных технических, программных и информационных принципах; городские сети между учреждениями в пределах одного или нескольких городов, связывающие много локальных вычислительных сетей; глобальная сеть, покрывающая большие географические регионы, включающие в себя как локальные сети, так и прочие телекоммуникационные сети и устройства. Например, сети с коммутацией пакетов (Frame relay), через которую могут «разговаривать» между собой различные компьютерные сети. Глобальные сети являются открытыми и ориентированы на обслуживание любых пользователей. Локальные компьютерные сети позволяют организовать работу отдельных предприятий и учреждений, в том числе и образовательных, решить 178
задачу организации доступа к общим техническим и информационным ресурсам. Глобальные сети (WAN, Wide Area Network) объединяют абонентов, расположенных друг от друга на значительных расстояниях: в разных районах города, в разных городах, странах, на разных континентах (например, сеть Интернет).
Взаимодействие между абонентами такой сети может осуществляться на базе телефонных линий связи, радиосвязи и систем спутниковой связи. Глобальные компьютерные сети позволят решить проблему объединения информационных ресурсов всего человечества и организации доступа к этим ресурсам. По типу функционального взаимодействия сети распределяются на: • клиент-сервер; • смешанная сеть; • одноранговая сеть; • многоранговые сети. По типу сетевой топологии • шина; • кольцо; • двойное кольцо; • звезда; • ячеистая топология; • решётка; • дерево. По типу среды передачи сети распределяются на: • проводные (телефонный провод, коаксиальный кабель, витая пара, волоконно-оптический кабель); • беспроводные (передачей информации по радиоволнам в определенном частотном диапазоне). По функциональному назначению сети распределяются на: • сети хранения данных; • серверные фермы; 179
• сети управления процессом; • сети SOHO • среднескоростные (до 100 Мбит/с); • высокоскоростные (свыше 100 Мбит/с). По сетевым операционным системам сети распределяются: • на основе Windows; • на основе UNIX; • на основе NetWare.
По необходимости поддержания постоянного соединения сети распределяются: • пакетная сеть, например Фидонет и UUCP; • онлайновая сеть, например Интернет и GSM. • По типу используемых ЭВМ: • однородные; • неоднородные. В неоднородных сетях содержатся программно несовместимые компьютеры (чаще так и бывает на практике).
По количеству используемых серверов: • одно серверная – сеть обслуживается одним файл-сервером (ФС); • много серверная – сеть обслуживается несколькими файлсерверами (ФС). Основные компоненты коммуникационной сети: передатчик; приёмник; сообщения (цифровые данные определённого формата: файл базы данных, таблица, ответ на запрос, текст или изображение); средства передачи (физическая передающая среда и специальная аппаратура, обеспечивающая передачу информации).
1.2. Топология локальных сетей Очень важным является вопрос топологии локальной сети. Под топологией компьютерной сети обычно понимают физическое расположение компьютеров сети относительно друг друга и способ соединения их линиями. Топология определяет требования к оборудованию, тип используемого кабеля, методы управления обменом, надежность работы, возможность расширения сети. Существует три основных вида топологии сети: шина, звезда и кольцо. 180
Источник: studfile.net