-17 / 2 / 0
Регистрация: 30.09.2015
Сообщений: 422
1

Определите сколько раз будет выполняться тело цикла

24.10.2015, 18:57. Показов 14879. Ответов 6
Метки нет (Все метки)

Определите сколько раз будет выполняться тело цикла:
1)
Pascal
1
2
3
4
5
S:=0;
 I:=0;
 Repeat I:=I-1;
 S:=S+1/I;
 Until      I<=1;
2)
Pascal
1
2
3
4
5
S:=0;
 I:=1;
 Repeat I:=I+1
 Until I>2;
 S:=S+1/I;
3)
Pascal
1
2
3
4
5
6
S:=0;
 I:=1; 
Repeat 
S:=S+1/I;
 I:=I+1;
 Until    I<1;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2015, 18:57
Ответы с готовыми решениями:

Определите, сколько раз будет выполняться тело цикла
1)S:=0; For n:=4 downto 3 do begin S:=s+n; S:=s*10; End; 2) Y:=0; For n:=4 to 6 ...

Определите сколько раз выполнится тело цикла в данном фрагменте Паскаль-программы
Определите сколько раз выполнится тело цикла в данном фрагменте Паскаль-программы. ... a:=202;...

Сколько раз повторяется тело цикла в указанном алгоритме?
Сколько раз повторяется тело цикла в алгоритме: m:=36; n:=56; while m&lt;&gt;n do ...

Сколько раз выполнится тело цикла?
Сколько раз выполнится тело цикла: for i:=2 to 5 do i:=4; ?

6
Модератор
9531 / 4859 / 3229
Регистрация: 17.08.2012
Сообщений: 15,202
26.10.2015, 01:27 2
1) 1
2) 2
3) Количество итераций зависит от типов переменных S и I.

Заметим, что в большинстве диалектов паскаля целочисленное переполнение не вызывает аварийного завершения программы. Возможны следующие варианты:

- если I - беззнаковое целое, программа завершится аварийно из-за переполнения разрядной сетки для числа с плавающей точкой для переменной S, количество итераций перед аварийным завершением программы зависит от типа переменной S;
- ecли I - вещественное, программа завершится аварийно из-за переполнения разрядной сетки для числа с плавающей точкой для переменной I, количество итераций перед аварийным завершением программы зависит от типа переменной I;
- если I - целое со знаком, цикл выполнится количество раз, равное максимальному числу, представимому в формате, который используется для переменной I, поскольку при достижении упомянутого числа произойдёт целочисленное переполнение, и в знаковом разряде числа окажется 1, что соответствует отрицательному числу, и условие выхода из цикла сработает.

Замечание: ответ

3) ∞

не является верным, точнее, он является верным только для компьютера с бесконечно широкой разрядной сеткой. Но таких компьютеров пока ещё не существует.
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
26.10.2015, 02:53 3
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
- если I - беззнаковое целое, программа завершится аварийно из-за переполнения разрядной сетки для числа с плавающей точкой для переменной S, количество итераций перед аварийным завершением программы зависит от типа переменной S;
чёй-то? о_О я на длинном слове я конечно результата не дождался, но на слове - вполне себе досчитал до 65535. Ровно та же ситуация, что и с целым со знаком.
0
Модератор
9531 / 4859 / 3229
Регистрация: 17.08.2012
Сообщений: 15,202
26.10.2015, 03:00 4
JokeR.BY, да, всё верно. Для беззнакового целого будет то же самое, что и для целого со знаком. После переполнения получится 0, и, естественно, условие выхода из цикла выполнится. Это я тормознул, что-то мне каким-то образом в мозг втемяшилось Until I<0... тогда бы был бесконечный цикл. А так - да, для любых целочисленных типов будет high(I) итераций.
0
-17 / 2 / 0
Регистрация: 30.09.2015
Сообщений: 422
28.10.2015, 16:02  [ТС] 5
дак я не поняла , ответ то какой будет в 3 , сколько раз будет выполняться тело цикла
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
28.10.2015, 17:48 6
Анютка98, зависит от типа переменной.
0
Модератор
9531 / 4859 / 3229
Регистрация: 17.08.2012
Сообщений: 15,202
29.10.2015, 23:22 7
Анютка98, хорошо, разжёвываю.
И, кстати, JokeR.BY, насчёт вещественных переменных я не прав. Немного не подумал. Итак.

- если I - любая вещественная переменная (single, real, double, extended) программа зациклится, то есть, количество итераций будет бесконечным, вернее, цикл будет выполняться до тех пор, пока выполнение программы не будет прервано извне, потому что как только порядок числа превысит длину мантиссы, единица прибавиться к I уже не сможет, с другой стороны, по этой же причине к S не сможет прибавиться 1/I.

Замечу, что скорее всего, это дурацкое задание с разночтениями не предполагает такого ответа, поскольку для малость туповатых составителей данного задания, вероятно, очевидно, что I - обязательно целое число. На чём зиждется эта их несуразная уверенность, сиё тайна великая есть даже для меня и JokeR.BY. Однако, может, и зря я так о составителях, вполне возможно, что Вы, Анютка98, просто не полностью переписали задание, например, не переписали, допустим, общую часть для всех предполагаемых вариантов заданий. Да и не суть важно. Давайте лучше разберёмся с целыми числами.

Итак, целые числа со знаком.

- smallint (1 байт) - 127;
- integer ("старое integer", 2 байта) - 32767 - вероятный ответ, если имеется ввиду старые диалекты наподобие Turbo Pascal;
- integer ("новое integer" или "старое longint", 4 байта) - 2147483647 - вероятный ответ, если имеются ввиду какие-либо современные диалекты паскаля;
- int64 (8 байт) - 9223372036854775807

Целые без знака.

- byte (1 байт) - 255;
- word (2 байта) - 65535;
- longword (4 байта) - 4294967295;
- uint64 (8 байт) - 18446744073709551615.

Выберите ответ по (вероятно) известному Вам контексту задания.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2015, 23:22
Помогаю со студенческими работами здесь

Сколько раз выполняется тело цикла?
B:=false;r:=45; While not B do begin B:=r=15; r:=r mod 4 + 15 end;

Сколько раз выполнится тело цикла во фрагменте алгоритма?
Сколько раз выполнится тело цикла во фрагменте алгоритма? в:=да; x:=64; нц пока в в:=(x&gt;=4);...

Сколько раз будет выполняться тело следующего оператора цикла
Сколько раз будет выполняться тело следующего оператора цикла? k:=0; for i:=1 to k+3 do k:=k+1;

Сколько раз выполнится тело цикла во фрагменте алгоритма
Сколько раз выполнится тело цикла во фрагменте алгоритма: в:=нет; x:= 4; нц пока не в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru