|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.03.2008, 20:16 | #1 |
Новичок
Джуниор
Регистрация: 14.03.2008
Сообщений: 1
|
Вопрос массивы и циклы
Здравствуйте!
Если можно, ответьте на 2 вопроса теста. Учусь в Интуит Университете и застопорился на лекции №3. На остальные вопросы отвечаю, а в этих ничего не выходит, даже используя компилятор ответы оказываются неправильные. Обидно бросать из-за этого программу. 3. Какие описания массивов являются правильными с точки зрения компилятора языка Pascal? 1.var a1: array[-1000..50] of integer 2.var a2: array[200..-111] of real 3.var a3: array[-10..10,byte,'0'..'9'] of longint 4.var a4: array[1..10000] of double 5.const n: byte = 0 var a5: array[-1000..n] of word 6.const m1 = 20; m2 = m1*100 var a6: array[m1..m2] of -200..200 7.type mass = array[1..100] of char var a7: array[0..99] of mass 8.var a8: array[word] of boolean 9.var a9: array[0.0..20000.0] of byte 10.const m1= 10; m2 = 17.89 var a10: array[round(m2/m1)..m1+10]of byte 5. Какие циклы будут работать "бесконечно"? 1.while true do k:=k+1 2.while false do k:=k+1 3.repeat k:=k+1 until true 4.repeat k:=k+1 until false 5.k:=0; repeat k:=k+1 until k<0; {k:byte} 6.k:=0; repeat k:=k+1 until k<0; {k:integer} 7.k:=1; while k>=0 do k:=k+1; {k:word} 8.k:=1; while k>=0 do k:=k+1; {k:shortint} 9.for i:=1 to i+1 do k:=k+1 10.for i:='x' to 'z' do dec(i) 11.for i:='x' downto 'z' do dec(i) 12.for i:=1 to n do n:=n+1 Спасибо! |
14.03.2008, 21:01 | #2 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
3 - 1,3,4,6,7,8,10
5 - 1,4,5,7 Последний раз редактировалось _Dmitry; 14.03.2008 в 21:04. |
15.03.2008, 03:24 | #3 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
|
15.03.2008, 08:38 | #4 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
|
16.03.2008, 00:13 | #5 |
Веб-разработчик
Форумчанин
Регистрация: 16.01.2008
Сообщений: 451
|
6.k:=0; repeat k:=k+1 until k<0; {k:integer} а етот цикл не бесконечный? если к=0 и далее +1 он ведь никогда не будет <0.
Я ваш новый друг, смиритесь!
|
16.03.2008, 00:50 | #6 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
А разве в Delphi это не warning? Уже плохо помню. Помню, что она выступала насчёт изменения переменной цикла, но просто не уверен уже, что это считалось ошибкой.
Будет. 32767 + 1 = -32768 |
16.03.2008, 12:58 | #7 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Для справедливости надо сказать, что integer 32 битное число и
2147483647 + 1 = -2147483648 только в том случае, если отключена проверка выхода за границы диапазона, что и сделано в Delphi по умолчанию. При отладке программы эту проверку неплохо бы включить, чтобы не получать непредсказуемые результаты: {$Q+} или {$OVERFLOWCHECKS ON} {$R+} или {$RANGECHECKS ON} |
16.03.2008, 13:35 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
если переменная беззнаковая, то цикл действительно будет бесконечным: Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Stringgrid, cells[m,n] и двумерные массивы.(#002) Очередной вопрос начинающего. | Albert2008 | Компоненты Delphi | 4 | 28.07.2008 19:02 |
Циклы (Pascal) | Дима82 | Помощь студентам | 4 | 07.06.2008 17:07 |
Циклы и выход из них. | alikk | Общие вопросы Delphi | 23 | 13.04.2008 08:44 |
Итерационные циклы | Андрюха из ПХТТ | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 14.02.2008 15:49 |