КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример 3
Задан массив X=(0,5,-3). Получить массив Y, при этом: y1=x1; y2=x2; y3=x3. Решение У нас два массива: X и Y. Оба они одномерные, состоят из трех элементов: X=(x1, x2, x3); Y=(y1, y2, y3). По размерности, количеству элементов и типу они совпадают (они вообще совпадают, даже значения элементов одни и те же). Отсюда следует, что их можно описать вместе одним описанием. 1-й вариант Var x,y:array [1..3] of integer; Begin x[1]:=0; x[2]:=5; x[3]:=-3; y[1]:=x[1]; y[2]:=x[2]; y[3]:=x[3]; Writeln(y[1],y[2],y[3]) End. А если же у нас в массивах X,Y будет, например, по 100 элементов? Что же мы будем писать 100 операторов присваивания, например, для каждого элемента массива Y? Конечно, нет. В этом случае надо воспользоваться оператором цикла. Заметим закономерность для операторов, в которых вычисляются значения для элементов массива Y. Индекс в квадратных скобках у элементов массива Y и соответствующих им элементах массива X изменяется от 1 до 3. Общий вид этих вычислений получается следующий: т.е. при i=1 будем иметь: y1= x1 и т.д. Итак, для i, изменяющейся от 1 до 3, производить вычисления по формуле: yi = xi. Запишем то же на языке PASCAL: for i:=1 to 3 do y[i]:=x[i]; Если элементов в массивах будет не 3, а, например, 100, изменится только заголовок цикла: for i:=1 to 100 do и количество элементов в массивах в описании. Давайте организуем ввод массива X с клавиатуры. Во-первых, с целью изменять значения элементов массива X (т.к. сейчас они «зашиты» в программе и, если мы захотим взять другие значения для элементов этого массива, то придется изменять их в тексте программы), а, во-вторых, опять же, нам нужно будет писать, например, 100 операторов присваивания для задания исходных данных, если в массиве X будет 100 элементов. Любой массив вводят в цикле. Введем наш массив Х: for i:=1 to 3 do read(x[i]); При i=1 будет вводиться элемент x[1]; при i=2 - x[2]; при i=3 - x[3]. Вывод - аналогичен. Итак, какая же программа у нас получается? Так как у нас появилась новая переменная i (целого типа), ее надо описать. 2-й вариант Var i:integer; x,y:array [1..3] of integer; Begin for i:=1 to 3 do Read(x[i]); {ВВОД с экрана} for i:=1 to 3 do y[i]:=x[i];
End. Итак, любой массив выводят в цикле. Вы, наверное, уже увидели, что эти три цикла можно объединить в один, т.е. организовать цикл следующим образом: ввод первого элемента массива Х, нахождение первого элемента массива Y и сразу же вывод его значения на экран; после этого ввод следующего элемента массива X и т.д. У нас получится такой вариант программы: 3-й вариант Var i:integer; x,y:array [1..3] of integer; Begin for i:=1 to 3 do begin Read(x[i]); y[i]:=x[i]; Writeln(y[i]) end End. Ниже приведен еще один вариант записи этой программы. Если массивы по типу описания совпадают, то присвоить значения элементов одного массива другому можно так, как показано в девятой строке программы. 4-й вариант Type ar = array [1..3] of integer; Const x: ar = (0,5,-3); Var i:integer; y:ar; Begin y:=x; {Знач. массива X присваив. массиву Y} for i:=1 to 3 do Writeln(y[i]) End. ЗАДАНИЯ №3. Описать одномерный целочисленный массив R, первым элементом которого является R1, а последним - R28. №4. Описать одномерный символьный массив Z, первым элементом которого является Z5, а последним - Z136. №5. Описать двухмерный массив Y, содержащий элементы вещественного типа, в котором пять строк и семь столбцов. №6. Дан одномерный массив C длиной 15 элементов. Получить массив D, причем №7. Какие из приведенных заголовков циклов не содержат ошибок? a) for j:=10 to 2 do б) for v:=-7 to 0 do в) for m[i]:=4 downto 0 do г) for w:=5 to 20 step 2 do д) for m:=14 downto k[4] do №8. Определить значение переменной S после выполнения следующих операторов: S:=1.0; n:=1; for i:= 2 to n do s:=s+1/i; s:=s-1; №9. Перепишите следующую программу и подчеркните все ошибочные места. Укажите общее количество ошибок в данной программе. Const m=10; Var ch: char; k: real; i,n: integer; a: array [1...n] of integer; b,c: array [1...m] of integer; i: array [1...i] of real; Begin Readln(n); Read(A); for ch:=0 to 9 do write(ch); for k=1 to m do Read(B[k]); Read(c[k]); for i:=n to 1 do a(i)=b(i)+c(i); b(i)=c; inc(i); c(i)=c(i)*c(i); a:=b; b:=c; a:=i; c:=b+5; Writeln(a,b); for i:= 1 to n do Writeln(Ci) End. ПРИМЕР 4 Представить в виде структурной схемы (два варианта) следующий цикл: for k:=5 to 20 do A[k]:=B[k]-1 Решение 1-й вариант В первом варианте схемы отобразим, как наш цикл будет работать по шагам.
Сначала присваивается первоначальное значение параметру цикла.
Затем проверяется условие работы цикла: должно ли при данном значении параметра цикла выполняться тело цикла?
Если условие истинно, то будет выполняться тело цикла при текущем значении параметра цикла. Здесь мы и записали тело цикла. Оно состоит из одного блока (оператора).
Потом увеличиваем значение параметра цикла на шаг, равный единице, и осуществляем переход на начало цикла для того, чтобы проверить, нужно ли при полученном значении К вычислять тело цикла. Если К станет больше 20, то мы выйдем из цикла на оператор, следующий за оператором цикла. 2-й вариант Для записи второго варианта используем блок «МОДИФИКАЦИЯ». Этот вариант более прост в записи, но зато, не совсем будет понятно как работает оператор цикла с параметром языка PASCAL.
В этом блоке мы записали, как изменяется значение параметра цикла: от 5 до 20 с шагом 1. Если шаг равен 1, то его опускают вместе с запятой, стоящей перед ним.
Оба варианта записи схемы приемлемы, поэтому Вы можете пользоваться любым из них. ЗАДАНИЯ №10. Представить в виде структурной схемы (2 варианта) следующий цикл: for L:=2 to 17 do begin k:=L+1; A[k]:=B[L] end №11. Представить следующие схемы в виде фрагментов программ (с использованием оператора цикла с параметром): 1)
2)
Таким образом изображаются циклы в структурных схемах
Дата добавления: 2014-12-27; Просмотров: 356; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |