Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 19.10.2016
Сообщений: 43

Чтение из файла происходит в бесконечном цикле

08.02.2018, 19:58. Показов 738. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, в чем прикол Read в цикле?
У меня есть код
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Const
x=3;
Var
A:Array[1..x,1..x] of ShortInt;
i,n,k:ShortInt;
p:String;
l:boolean;
Begin
l:=false;
while l=false do begin
Read(p);
if (p='1') And (A[1,1]=0) then begin A[1,1]:=1; l:=true; end else
if (p='2') And (A[2,1]=0) then begin A[2,1]:=1; l:=true; end else
if (p='3') And (A[3,1]=0) then begin A[3,1]:=1; l:=true; end else
if (p='4') And (A[1,2]=0) then begin A[1,2]:=1; l:=true; end else
if (p='5') And (A[2,2]=0) then begin A[2,2]:=1; l:=true; end else
if (p='6') And (A[3,2]=0) then begin A[3,2]:=1; l:=true; end else
if (p='7') And (A[1,3]=0) then begin A[1,3]:=1; l:=true; end else
if (p='8') And (A[2,3]=0) then begin A[2,3]:=1; l:=true; end else
if (p='9') And (A[3,3]=0) then begin A[3,3]:=1; l:=true; end else Writeln('Данная клетка занята или ее не существуeт. Попробуйте выбрать другую.');
end;
И оно бесконечным циклом выводит "Данная клетка занята или ее не существуeт. Попробуйте выбрать другую.". Как сделать так, что бы оно спрашивало еще раз?

Добавлено через 12 минут
Readln
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.02.2018, 19:58
Ответы с готовыми решениями:

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

Выполнять функцию в бесконечном цикле
Здравствуйте! Мне нужно чтобы каждую секунду выполнялась одна функция, которая возвращает булевское значение Подскажите, как сделать?...

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

1
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
09.02.2018, 07:53
Со строковыми переменными нужно использовать только ReadLn.
Ваши if…else можно же оптимизировать:
Pascal
1
2
3
4
5
6
7
8
9
10
11
      ReadLn(p);
      if (p.Length=1) and ('123456789'.IndexOf(p)>-1) then
        begin
          var index:='123456789'.IndexOf(p);
          var(row,col):=((index mod 3) + 1, (index div 3) + 1);
          WriteLn('A[', row, ',', col, ']');
          if A[row,col] = 0 then
            (A[row,col], l) := (1, True);
        end
      else
        Writeln('Данная клетка занята или ее не существуeт. Попробуйте выбрать другую.');
Добавлено через 17 минут
А лучше вообще, завести константой:
Pascal
1
2
3
4
5
6
7
8
9
. . . . . .
type XY = record x,y : Integer; end;
const coords : array ['1'..'9'] of XY = ((x:1;y:1),(x:2;y:1),(x:3;y:1),(x:1;y:2),(x:2;y:2),(x:3;y:2),(x:1;y:3),(x:2;y:3),(x:3;y:3));
. . . . . .
      if (p.Length=1) and ('123456789'.IndexOf(p)>-1) and (A[coords[p[1]].x,coords[p[1]].y] = 0) then
        (A[coords[p[1]].x,coords[p[1]].y], l) := (1, True)
      else
        Writeln('Данная клетка занята или ее не существуeт. Попробуйте выбрать другую.');
. . . . . .
Добавлено через 7 минут
P.S. Первый код с небольшой ошибкой…
Там получается, что первое условие не срабатывает только когда клетка не существует.
А условие „if A[row,col] = 0 then“ отбивает её занятость.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.02.2018, 07:53
Помогаю со студенческими работами здесь

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

Запрашивать слова в бесконечном цикле
Запрашивать у польщователя слова в бесконечном цикле. Выводить true, если словосодержит только цифры 0-9 и символы A-F или a-f, и false,...

Получить событие в бесконечном цикле
Здравствуйте, такой код: bool Stop; private void button1_Click(object sender, EventArgs e) { Stop =...

Загрузка процессора в бесконечном цикле
Что будет есть в Visual Studio в консольном приложении на C# написать бесконечный цикл while(true) {} и запустить на выполнение ? На...

Синхронизация потоков в бесконечном цикле
Попробовал написать сначала сюда, но, пожалуй, неправильно выбрал раздел. Есть два примерно одинаковых потока. Основной код в обоих...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru