Принцип работы цикла for_to (for_downto)
На первом шаге цикла счетчику присаивается значение выражения нач_знач. Затем производится проверка выражения параметр <= кон_знач (параметр >= кон_знач) и, если оно истинно выполняется тело цикла, в противном случае происходит выход из цикла. После выполнения тела цикла происходит изменение параметра на следующее большее (меньшее) значение в зависимости от формы оператора for, т.е. неявно происходит выполнение одного из двух операторов:
параметр := Succ(параметр);
параметр := Pred(параметр);
Затем снова идет проверка выражения параметр <= кон_знач (параметр >= кон_знач) и опять, если оно истинно выполняется тело цикла. Цикл выполняется до тех пор, пока счетчик не станет большим (меньшим) выражения кон_знач.
Примеры
For i:=1 to 10 do writeln('a');
For month:=12 downto 1 do S:=S+1;
For k:=1 downto 5 do p:=p*2;
В первом случае тело цикла выполнится 10 раз и будет выведено на экран 10 букв "а".
В втором случае тело цикла выполнится 12 раз.
В третьем случае тело цикла не выполнится ни разу, т.к. сразу 1>5.
Типовые задачи
1. Даны 10 вещественных чисел. Подсчитать среди них количество положительных.
Слово "даны" означает, что программа должна получить их от пользователя. Идея: мы должны иметь переменную счетчик, которую должны наращивать, когда введенное число окажется положительным. Нам не нужно заводить 10 переменных, достаточно одной. Алгоритм получается примерно такой:
Ввод очередного числа
Проверка
Ввод очередного числа
Проверка
И так еще 8 раз.
Очевидно, что это все можно представить в виде оператора цикла.
Повторять 10 раз
Ввод очередного числа
Проверка
Конец цикла
На языке Паскаль это будет выглядеть так:
for i:=1 to 10 do
Begin
write('Введите ',i,'-ое число: ');
readln(x);
if x>0 then kol:=kol+1 {увеличиваем количество на 1}
end;
Полный текст программы:
program chisla;
uses crt;
var i, kol:byte;
x:real;
Begin
clrscr;
kol:=0;
for i:=1 to 10 do
Begin
write('Введите ',i,'-ое число: ');
readln(x);
if x>0 then kol:=kol+1 {увеличиваем количество на 1}
end;
writeln('Вы ввели ',kol,' положительных чисел.');
Readln
end.
2. Напечатать буквы латинского алфавита в обратном порядке от 'Z' до 'A'.
program alphabet;
var c:char;
Begin
for c:='Z' downto 'A' do write(c);
Readln
End
3: Вычислить N-е число Фиббоначчи. Числа Фиббоначчи строятся следующим образом: F(0)=F(1)=1; F(i+1)=F(i)+F(i-1); для i>=1. Это пример вычислений по рекуррентным формулам.
program Fib;
var a,b,c:word; i,n:byte;
Begin
write('введите номер числа Фиббоначчи ');
readln(N);
a:=1; {a=F(0), a соответствует F(i-2)}
b:=1; {b=F(1), b соответствует F(i-1)}
for i:=2 to N do
Begin
c:=a+b; {c соответствует F(i)}
a:=b; b:=c; {в качестве a и b берется следующая пара чисел}
end;
writeln(N,'-е число Фиббоначчи =',b); {для N>=2 b=c}
Readln
end.
ЦИКЛЫ С УСЛОВИЕМ.
Если заранее неизвестно число повторений цикла, то используются циклы с условием. В паскале имеется два типа таких циклов. Циклы While называют циклами с пред-условием. Они имеют вид
WHILE <логич.выражение> DO <оператор>;
Цикл While организует выполнение одного (возможно составного) оператора пока истинно логическое выражение, стоящее в заголовке цикла. Поскольку значение логического выражения проверяется в начале каждой итерации, то тело цикла может не выполниться ни разу. Таким образом, в этом цикле логическое выражение - это условие продолжения работы в цикле.
Другой вариант циклов с условием - это циклы Repeat. Их называют циклами с пост-условием. Они имеют вид
REPEAT
<оператор 1> ... <оператор N>
UNTIL <логич.выражение>
Оператор Repeat организует повторяющееся выполнение нескольких операторов до тех пор пока не станет истинным условие, стоящее в Until-части. Тело цикла обязательно выполняется хотя бы один раз. Таким образом, в этом цикле логическое выражение - это условие выхода из цикла.
При создании циклических алгоритмов Турбо Паскаль позволяет использовать процедуры Continue и Break. Процедура Continue досрочно завершает очередной шаг цикла, передает управление на заголовок. Процедура Break реализует немедленный выход из цикла.
РЕКОМЕНДАЦИИ: Для того, чтобы избежать зацикливания программы необходимо обеспечить изменение на каждом шаге цикла значения хотя бы одной переменной, входящей в условие цикла. После выхода из цикла со сложным условием (с использованием операций and, or, xor) как правило необходима проверка того, по какому условию цикл завершен.
ПРИМЕР: Пары неотрицательных вещественных чисел вводятся с клавиатуры. Посчитать произведение для каждой пары и сумму всех чисел.
program cycle_while;
var x,y,sum:real; otv:char;
Begin
sum:=0;
otv='Д';
while (otv='Д') or (otv='д') do
Begin
write('Введите числа x,y > 0 ');
readln(x,y);
writeln('Их произведение = ',x*y:8:3);
sum:=sum+x+y;
write('Завершить программу (Д/Н)? ');
readln(otv);
end;
writeln('Общая сумма = ',sum:8:3);
Readln
End.
ПРИМЕР: В той же задаче можно использовать другой цикл с условием:
program cycle_repeat;
var x,y,sum:real; otv:char;
Begin
sum:=0;
Repeat
write('Введите числа x,y > 0 ');
readln(x,y);
writeln('Их произведение = ',x*y:8:3);
sum:=sum+x+y;
write('Завершить программу (Д/Н)? ');
readln(otv);
until (otv='Д') or (otv='д');
writeln('Общая сумма = ',sum:8:3);
Readln
end.
ПРИМЕР: Нахождение наибольшего общего делителя двух целых чисел с помощью Алгоритма Эвклида.
program Evklid;
var a,b,c:integer;
Begin
write('введите два целых числа : ');
readln(a,b);
while b<>0 do
Begin
c:=a mod b;
a:=b;
b:=c;
end;
writeln('наибольший общий делитель = ',a);
Readln
end.
[kgl]
[gl]ЛЕКЦИИ 12-14. КОМПЬЮТЕРНЫЕ СЕТИ И СЕТЕВЫЕ ТЕХНОЛОГИИ[:]
Компьютерная сеть (англ. Computer NetWork, от net — сеть и work— работа) — совокупность компьютеров, соединенных с помощью каналов связи и средств коммутации в единую систему для обмена сообщениями и доступа пользователей к программным, техническим, информационным и организационным ресурсам сети.
Компьютерную сеть представляют как совокупность узлов (компьютеров и сетевого оборудования) и соединяющих их ветвей (каналов связи). Ветвь сети — это путь, соединяющий два смежных узла. Различают узлы оконечные, расположенные в конце только одной ветви, промежуточные, расположенные на концах более чем одной ветви, и смежные — такие узлы соединены по крайней мере одним путём, не содержащим никаких других узлов. Компьютеры могут объединяться в сеть разными способами.
Логический и физический способы соединения компьютеров, кабелей и других компонентов, в целом составляющих сеть, называется ее топологией. Топология характеризует свойства сетей, не зависящие от их размеров. При этом не учитывается производительность и принцип работы этих объектов, их типы, длины каналов, хотя при проектировании эти факторы очень важны.
Принцип централизованной обработки данных (когда к центральной ЭВМ подключалось несколько терминалов – ввод/вывод) не отвечал высоким требованиям к надежности процесса обработки. Вследствие чего возникло обоснованное требование перехода от использования отдельных ЭВМ в системах централизованной обработки данных к распределенной обработке данных.
Распределенная обработка данных – обработка данных, выполняемая на независимых, но связанных между собой компьютерах, представляющих распределенную систему.
Для реализации распределенной обработки данных были созданы компьютерные (вычислительные) сети.
Компьютерная (вычислительная) сеть – совокупность компьютеров, соединенных каналами связи в единую систему, удовлетворяющую требованиям распределенной обработки данных.
Абоненты сети– объекты, генерирующие или потребляющую информацию в сети.
Абонентами могут быть отдельные ЭВМ, комплексы ЭВМ, терминалы, промышленные роботы, станки с ЧПУ (числовым программным управлением) и т.д. Любой абонент сети подключается к станции.
Станция – это аппаратура, которая выполняет функции, связанные с передачей и приемом информации. Совокупность абонента и станции принято считать абонентской системой.
Физическая передающая среда – линии связи или пространство, в котором распространяются электрические сигналы, и аппаратура передачи данных.
На базе физической передающей среды строится коммуникационная сеть, которая обеспечивает передачу информации между абонентскими системами.
Основное назначение компьютерной сети – предоставление информационных и вычислительных ресурсов подключенным к ней пользователям.