Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Gidropon
75 / 75 / 52
Регистрация: 28.02.2013
Сообщений: 206
Записей в блоге: 9
1

В тип integer ввод char

09.04.2013, 02:35. Просмотров 599. Ответов 5
Метки нет (Все метки)

Например нам дано:

Pascal
1
2
3
4
5
6
7
8
9
var
x:integer;
 
begin
....
writeln('Введите x');
readln(x);
....
end.
Вопрос: как сделать так, что бы при вводе например буквы (вместо числа) или дробного числа, программа продолжила свою работу написав :
"Ошибка ввода" и заново предложила бы ввести это число, короче нужно что бы не крешилась на этом месте..
буду благодарен если хотя бы на мысль наведете)

То же самое интересует наоборот, например если дана символьная переменная, а туда мы вводим число
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 02:35
Ответы с готовыми решениями:

Ошибка, нельзя преобразовать тип Integer к Char
ошибка в 72 строке если еще найдутся, исправьте пожалуйста Program KurRab;...

С Char в integer/real...
Kак перейти с массива (char) в массив (например integer или real)? Чтобы потом...

Преобразовать двухзначное число из char в integer
Допустим есть char c = '24' // Я знаю что не по-паскалевски написал, но...

Преобразовать тип String в Integer
Как преобразовать переменную S, формат-string, В переменную S1,...

Ошибка: нельзя преобразовать тип integer к boolean
Program Example_96_1; Uses crt; Var x,y,Max,Min,Rezultat:integer; Begin...

5
BLEERD
10 / 10 / 9
Регистрация: 04.01.2013
Сообщений: 30
Завершенные тесты: 2
09.04.2013, 03:36 2
Думаю эти темы ответят на твои вопросы:
Защита от дурака
и
Защита от дурака
1
Mawrat
12827 / 5735 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
09.04.2013, 11:13 3
Я часто применяю такой способ:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  Num : Integer; {Или Num : Extended, Num : Double, Num : Real и т. д.}
  Code : Integer;
  S : String;
begin
  repeat
    Write('Задайте число: ');
    Readln(S);
    Val(S, Num, Code);
    if Code > 0 then
      Writeln('Неверный ввод. Повторите.');
  until Code = 0;
  
  Writeln('Вы задали число: ', Num);
  Readln;
end.
1
Gidropon
75 / 75 / 52
Регистрация: 28.02.2013
Сообщений: 206
Записей в блоге: 9
09.04.2013, 11:16  [ТС] 4
Mawrat, я уже изучил этот вопрос,а почему не пользуешься ioresult?
Там и по объему меньше выйдет)
1
Mawrat
12827 / 5735 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
09.04.2013, 11:44 5
Да - можно IOResult() вызывать. Код с вызовом Val() - это на основе другого кода сделано, где ещё одна задача решалась - отказ пользователя от ввода (прекращение ввода):
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
const
  N = 100;
var
  Arr : array[1..N] of Integer;
  i, Code : Integer;
  S : String;
begin
  Writeln('Введите ряд чисел. Ввод каждого числа завершайте нажатием Enter.');
  Writeln('Прекратить ввод - пустая строка + Enter.');
  i := 0;
  repeat
    Write('Элемент ', i + 1, ': ');
    Readln(S);
    if S <> '' then begin
      Val(S, Arr[i + 1], Code);
      if Code = 0 then
        Inc(i)
      else
        Writeln('Неверный ввод. Повторите.');
    end;
  until (S = '') or (i = N);
  
  Readln;
end.
1
Gidropon
75 / 75 / 52
Регистрация: 28.02.2013
Сообщений: 206
Записей в блоге: 9
09.04.2013, 16:07  [ТС] 6
Mawrat, спасибо)теперь у меня все отлично)
0
09.04.2013, 16:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2013, 16:07

надо поменять тип массива с integer наreal
Program Massiv; Const k=20;n=25; Var Mas:array of integer; M,I,P: integer;...

Выдает ошибку: Нельзя преобразовывать тип real к integer
Выдает ошибку &quot;Нельзя преобразовывать тип real к integer.&quot; В строчке 21. Уже не...

Practic1.pas(53) : Нельзя преобразовать тип real к integer
Подскажите пожалуйста как проверить число типа real на кратность? ... sum...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru