04.09.2010, 16:06 | #51 (permalink) |
Снова перешел на Vist'у
Регистрация: 17.04.2010
Сообщений: 1,685
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 293
|
Код:
Видоизменить диалог с компьютером, начатый в 4.15. Пусть компьютер, узнав возраст человека, дальнейшую беседу ведет по двум вариантам. Если возраст больше 17, то компьютер должен задать вопрос: "В каком институте ты учишься?" и получив ответ, глубокомысленно заметить "Хороший институт". Если же возраст меньше или равен 17, то соответственно - "В какой школе ты учишься?" и "Неплохая школа". После этого, каков бы ни был вариант, компьютер должен попрощаться: "До следующей встречи!". вот как делал - Код:
Var a, b, c, d :Integer; BEGIN Writeln ('ЏаЁўҐв, п вў®© Є®¬ЇмовҐа. Љ*Є вҐЎп §®ўгв?'); Readln (a); writeln ('Ќг * бЄ®«мЄ® ⥡Ґ «Ґв,', a, '?'); Readln (b); if b<15 then Begin Writeln ('‚ Є*Є®© иЄ®«Ґ вл гзЁибп?'); readln (c); Writeln ('Ќ®а¬*«м**п иЄ®«*?'); Readln (d); writeln ('Џ®*пв*®, б®згўбвўго'); End else Begin writeln ('‘в*а®ў*в, ®¤**Є®'); End; Writeln ('Ќг, Ўлў*©'); readln; END. ну и сама программа ( во вложениях) код выхода 106 (не знаю что такое но при создании и дальнейшем тестировании в начале такое вылетело) помогите пожалуйста!!! Последний раз редактировалось Бродяга; 04.09.2010 в 16:12 |
04.09.2010, 17:47 | #52 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Всё очень просто. Вы задаете всем четырем переменным тип Integer, т.е. знаковое целое число, а между тем два из них (a и d) предполагают ответ в виде слова (имя и "да" или "нет" на вопрос "Нормальная школа?"). А раз так, то им должен быть присвоен тип String (строка).
Код:
Var a, d :String; b, c :Integer; BEGIN Writeln ('ЏаЁўҐв, п вў®© Є®¬ЇмовҐа. Љ*Є вҐЎп §®ўгв?'); Readln (a); writeln ('Ќг * бЄ®«мЄ® ⥡Ґ «Ґв,', a, '?'); Readln (b); if b<15 then Begin Writeln ('‚ Є*Є®© иЄ®«Ґ вл гзЁибп?'); readln (c); Writeln ('Ќ®а¬*«м**п иЄ®«*?'); Readln (d); writeln ('Џ®*пв*®, б®згўбвўго'); End else Begin writeln ('‘в*а®ў*в, ®¤**Є®'); End; Writeln ('Ќг, Ўлў*©'); readln; END. |
04.09.2010, 18:01 | #53 (permalink) |
Снова перешел на Vist'у
Регистрация: 17.04.2010
Сообщений: 1,685
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 293
|
Спасибо! После ответа компьютера "ПОнятно Сочувствую" я поставил readln потому что после ответа да или нет программа выключалась. теперь компьютер отвечает, нажимаю интер и программа отключается.
и ещё - собрал калькулятор на if, then но он при создании в выражении c:=a/b видит ошибку т.е. не распознаёт деление как исправить? |
04.09.2010, 18:04 | #54 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
04.09.2010, 18:09 | #55 (permalink) |
Снова перешел на Vist'у
Регистрация: 17.04.2010
Сообщений: 1,685
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 293
|
на одном (где чёрный экран и куча попыток) это программа о которой говорилось ранее. после момента на скрине нажимаю интер и вылетает в создание.
на другом калькулятор, знак "/" распознаётся как ошибка. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
04.09.2010, 18:25 | #56 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Эти описания мне ни о чем не говорят. Ясно, что обе программы содержат ошибки набора (первую я проверил - если правильно задать типы, то она работает, как и должна, без всяких фокусов), вторую я не видел и ничего сказать не могу. |
|
04.09.2010, 18:45 | #58 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так, ну что касается калькулятора - тут всё ясно. Так и должно быть. Дело в том, что для целых (Integer) чисел действие деление косой чертой НЕ ОПРЕДЕЛЕНО. Там существует только div и mod. (a div b) это ЦЕЛАЯ ЧАСТЬ результата деления ЦЕЛОГО a на ЦЕЛОЕ b, (a mod b) - остаток такого деления. Например, (9 div 4)=2, (9 mod 4)=1. Можно задать всем ЧИСЛОВЫМ переменным формат Real (вещественный тип), тогда пойдет.
По второй задаче не понял, в чем проблема. |
04.09.2010, 18:49 | #60 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|