Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для []Dark
8 / 8 / 2
Регистрация: 20.10.2009
Сообщений: 73

Я только учусь...

20.10.2009, 19:57. Показов 2230. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот недавно начал изучать Паскаль и сегодня ради практики решил написать простую программу. все бы хорошо, да только не смог понять почему не выполняется часть кода
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
program bI;
uses crt;
var a,b,c,s:integer;
    otvet:string;
 
Begin
    clrscr;
    writeln('Введите "да" если хотите сосчитать сумму трех чисел');
    read(otvet);
    while (otvet='да') do
     begin
     write('Введите 1-е число: ');
     read(a);
     write('Введите 2-е число: ');
     read(b);
     write('Введите 3-е число: ');
     read(c);
 
     s:=a+b+c;
 
     writeln('Результат: ',s);
     writeln;
     writeln('Введите "да" если хотите посчитать сумму трех чисел снова');
     readln(otvet); {Вот тут он не хочет читать переменную}
     readln;
     end;
 
     writeln('Вы отказались сосчитать сумму трех чисел, пожалуйста, закройте программу.');
     readln;
 
END.
Или в цикле while нельзя менять переменную условия? Спасибо.

Добавлено через 1 час 37 минут
17 человек посмотрело и никто не знает в чем проблема?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.10.2009, 19:57
Ответы с готовыми решениями:

Я только учусь!!!
Рябята я самый что ни есть новичок в сеошном деле, до этого думал, что умею делать сайты и больше ничего мне не нужно, а теперь столкнулся...

Помогите! Я только учусь....
Private Sub Кнопка7_Click() On Error GoTo Err_Кнопка7_Click Dim stDocName As String Dim stLinkCriteria As String ...

Не работает класс (Учусь только)
Написал класс using Microsoft.Win32; namespace Launcher_WoW { class Regs { public void Read(string a) ...

21
localhost
 Аватар для Wassago
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
20.10.2009, 21:00
Строка 25 лишня!

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
program bI;
uses crt;
var a,b,c,s:integer;
    otvet:string;
 
Begin
    clrscr;
    writeln('Введите "да" если хотите сосчитать сумму трех чисел');
    read(otvet);
    while (otvet='да') do
     begin
     write('Введите 1-е число: ');
     read(a);
     write('Введите 2-е число: ');
     read(b);
     write('Введите 3-е число: ');
     read(c);
 
     s:=a+b+c;
 
     writeln('Результат: ',s);
     writeln;
     writeln('Введите "да" если хотите посчитать сумму трех чисел снова');
     readln(otvet); {Вот тут он не хочет читать переменную}
     [U]readln;[/U]          {Вот ето убираем}
     end;
 
     writeln('Вы отказались сосчитать сумму трех чисел, пожалуйста, закройте программу.');
     readln;
 
END.
0
1916 / 1066 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
20.10.2009, 21:06
и вообще лучше использовать вместо read(a,b,c) readln(a,b,c)
0
 Аватар для []Dark
8 / 8 / 2
Регистрация: 20.10.2009
Сообщений: 73
20.10.2009, 21:07  [ТС]
нет, он все равно не читает, я до этого уже пробовал можешь сам попробовать, в том и прикол.

Добавлено через 41 секунду
Цитата Сообщение от Snoopy Посмотреть сообщение
и вообще лучше использовать вместо read(a,b,c) readln(a,b,c)
не принципиально
0
localhost
 Аватар для Wassago
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
20.10.2009, 21:08
Попробувал,роботает)
0
8 / 8 / 2
Регистрация: 06.10.2009
Сообщений: 87
20.10.2009, 21:11
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    clrscr;
    writeln('Введите "да" если хотите сосчитать сумму трех чисел');
    read(otvet);
    while (otvet='да') do
     begin
     write('Введите 1-е число: ');
     read(a);
     write('Введите 2-е число: ');
     read(b);
     write('Введите 3-е число: ');
     read(c);
 
     s:=a+b+c;
 
     writeln('Результат: ',s);
     writeln;
     writeln('Введите "да" если хотите посчитать сумму трех чисел снова');
     readln(otvet);
вот
0
 Аватар для System.exe
92 / 88 / 58
Регистрация: 14.05.2009
Сообщений: 202
20.10.2009, 21:13
Проблема должно быть в том, что нужно написать : writeln('Размер:', s:5:2) т.е. задать параметры вывода переменной.
0
localhost
 Аватар для Wassago
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
20.10.2009, 21:15
О каком это ты розмере?))
0
 Аватар для []Dark
8 / 8 / 2
Регистрация: 20.10.2009
Сообщений: 73
20.10.2009, 21:23  [ТС]
нет, переменная, целое число, это не нужно.
0
 Аватар для arch-vile
3215 / 774 / 26
Регистрация: 12.07.2009
Сообщений: 3,184
20.10.2009, 21:27
Он переменную читает, правда надо дважды Enter нажать, я так понял из-за Readln... Считайте переменную read'ом, и все сразу работает...
0
 Аватар для []Dark
8 / 8 / 2
Регистрация: 20.10.2009
Сообщений: 73
20.10.2009, 21:50  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
program bI;
uses crt;
var a,b,c,s:integer;
    otvet:string;
 
Begin
    clrscr;
    writeln('Введите "да" если хотите сосчитать сумму трех чисел');
    read(otvet);
    while (otvet='да') do
     begin
     write('Введите 1-е число: ');
     read(a);
     write('Введите 2-е число: ');
     read(b);
     write('Введите 3-е число: ');
     read(c);
 
     s:=a+b+c;
 
     writeln('Результат: ',s);
     writeln;
     writeln('Введите "да" если хотите посчитать сумму трех чисел снова');
     read(otvet);
     readln; {Это я ставлю чтобы проверить считалась ли переменная, но я не могу её ввести, потому что он моментально заканчивает цикл и выдает надпись написанную ниже}
     end;
 
     writeln('Вы отказались сосчитать сумму трех чисел, пожалуйста, закройте программу.');
     readln;
 
END.
Читайте* закоментированную часть.
0
 Аватар для arch-vile
3215 / 774 / 26
Регистрация: 12.07.2009
Сообщений: 3,184
20.10.2009, 22:11
Цитата Сообщение от [
Dark;314252]
Pascal
1
2
3
4
5
6
writeln('Результат: ',s);
 writeln;
 writeln('Введите "да" если хотите посчитать сумму трех чисел снова');
 read(otvet);
 readln; {Это я ставлю чтобы проверить считалась ли переменная, но я не могу её ввести, потому что он моментально заканчивает цикл и выдает надпись написанную ниже}
 end;
Смысле, не можете её ввести? Попробуйте еще сделать так: чтобы переменные вводились на латинском, и где-нибудь перед вторым вводом обнулить переменную otvet.
1
 Аватар для []Dark
8 / 8 / 2
Регистрация: 20.10.2009
Сообщений: 73
20.10.2009, 22:15  [ТС]
И это я тоже делал ))) я её менял на "нет" но все равно она не вводилась цикл завершается и все.
А история началась с того что сделав контрольное задание на паре информатики, я открыл Борланд Паскаль и напечатал подобный код, и у меня возникла эта проблема. С учителем мы сидели и думали почему, но ничего не надумали. Вечером, дома, я написал заново все с нуля и эта же проблема проявилась снова Загадка
0
 Аватар для arch-vile
3215 / 774 / 26
Регистрация: 12.07.2009
Сообщений: 3,184
20.10.2009, 22:31
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
var a,b,c,s:integer;
var otvet:string;
 begin
 clrscr;
 writeln('Vvedite [da] esli...');
 read(otvet);
 while(otvet='da') do
  begin
  writeln('Vvedite a...');
  readln(a);
  writeln('Vvedite b...');
  readln(b);
  writeln('Vvedite c...');
  readln(c);
  s:= a+b+c;
  writeln('Rezultat: ',s);
  writeln;
  writeln('Vvedite [da] esli...');
  read(otvet);
  end;
 end.
Вот как я забил код проги до ошибки в TP, с некоторыми изменениями... Но все работает...
1
 Аватар для []Dark
8 / 8 / 2
Регистрация: 20.10.2009
Сообщений: 73
20.10.2009, 23:19  [ТС]
А с латиницей или как там её, кароче русскими буквами пробовал? и еще сообщение о закрытии при завершении цикла Доброй ночи

Добавлено через 1 минуту
и кстати я переменные, кроме ответа ввожу в одну строку для наглядности хоть это не принципиально, но программа есть программа.
0
 Аватар для arch-vile
3215 / 774 / 26
Регистрация: 12.07.2009
Сообщений: 3,184
20.10.2009, 23:23
У меня Паскаль с русскими буквами не работает... А завершение работы программы я сделал так:
Pascal
1
2
3
4
5
6
7
 ...
  end;
  writeln('Press Enter to exit');
   repeat
    ch:=readkey
   until (ch=#13);
 end.
1
 Аватар для []Dark
8 / 8 / 2
Регистрация: 20.10.2009
Сообщений: 73
21.10.2009, 15:35  [ТС]
Потом посмотрю в чем может быть в причина данных проблем, возможно в русских символах... Ибо транслит понимает и принимает, а русские не хочет...
0
 Аватар для []Dark
8 / 8 / 2
Регистрация: 20.10.2009
Сообщений: 73
22.10.2009, 20:19  [ТС]
Вчера я не успел разобраться... но сегодня... о да В) я разобрался. В общем объясняю в чем причина:
Вот код arch-vile:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
var a,b,c,s:integer;
var otvet:string;
 begin
 clrscr;
 writeln('Vvedite [da] esli...');
 read(otvet);
 while(otvet='da') do
  begin
  writeln('Vvedite a...');
  readln(a);
  writeln('Vvedite b...');
  readln(b);
  writeln('Vvedite c...');
  readln(c);
  s:= a+b+c;
  writeln('Rezultat: ',s);
  writeln;
  writeln('Vvedite [da] esli...');
  read(otvet);
  end;
 end.
А вот так мой:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
program bI;
uses crt;
var a,b,c,s:integer;
    otvet:string;
 
Begin
    clrscr;
    writeln('Введите "да" если хотите сосчитать сумму трех чисел: ');
    read(otvet);
    while (otvet='да') do begin
    writeln('Введите первое число: ');
    read(a);
    writeln('Введите второе число: ');
    read(b);
    writeln('Введите третье число: ');
    read(c);
    s:=a+b+c;
    writeln('Результат: ',s);
    writeln;
    Writeln('Введите "да" если хотите сосчитать снова: ');
    read(otvet);
    end;
    writeln('Close the window');
    readln;
    readln;
 
END.
Я пробовал и с англ символами и с русскими, в общем разница только в том, каким оператором мы считаем "исходные" переменные (a,b,c). Изменив в своем коде операторы read считывающие переменные a, b и c на readln (ну еще я добавил оператор очистки окна в начало цикла, но значения особого не придает), мы получаем полностью работающую программу:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
program bI;
uses crt;
var a,b,c,s:integer;
    otvet:string;
 
Begin
    clrscr;
    writeln('Введите "да" если хотите сосчитать сумму трех чисел: ');
    read(otvet);
    while (otvet='да') do begin
    clrscr;
    writeln('Введите первое число: ');
    readln(a);
    writeln('Введите второе число: ');
    readln(b);
    writeln('Введите третье число: ');
    readln(c);
    s:=a+b+c;
    writeln('Результат: ',s);
    writeln;
    Writeln('Введите "да" если хотите сосчитать сумму трех чисел снова: ');
    read(otvet);
    end;
    writeln('Close the window');
    readln;
    readln;
 
END.
Парадокс, или как там это называется Спасибо всем кто ответил, а особенно arch-vile
1
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
22.10.2009, 20:52
Никогда без особой надобности не пользуйтесь оператором read, применяйте readln. Вы считываете данные в память и не всегда корректно оттуда их извлекаете, программа не знает что ей делать.
2
 Аватар для []Dark
8 / 8 / 2
Регистрация: 20.10.2009
Сообщений: 73
22.10.2009, 20:58  [ТС]
хм...спасибо за объяснение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.10.2009, 20:58
Помогаю со студенческими работами здесь

Массивы. Только учусь. Выборка и сортировка
Задание такое. Язык: C Define использовать нельзя!!! С клавиатуры вводятся слова разделенные пробелами. На экран выводятся в...

ошибочки.только учусь. как разобрать?
на парах писали прогу - все работало..пришла домой - решила переделать под свои данные:и почему то не запусается,хотя все...

Только учусь.привести код в порядок
У меня на ноуте установлен SQL Server Management Studio. Препод дала задание создать таблицы с кодом на sql, отдельно таблицы для...

не работает header(); только учусь. сильно не критикируйте
<?php require_once('header.php'); require_once('bd.php'); include('function_news.php'); $a='inex.php'; if(isset($_POST)) { ...

нужен совет по FoxPro7. Только учусь. Не профи!!!!
Уважаемые программисты! Если не трудно подскажите по поводу одной проблемки! Установил FoxPro 7, а там напрочь отсутствует Wizard Setup. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru