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

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

20.10.2009, 19:57. Показов 2155. Ответов 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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru