Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal ABC

Войти
Регистрация
Восстановить пароль
 
Gabdra
1 / 1 / 0
Регистрация: 23.12.2013
Сообщений: 112
#1

Защита от неправильного ввода при заполнении массива - Pascal ABC

26.12.2013, 19:13. Просмотров 352. Ответов 1
Метки нет (Все метки)

Хочу чтобы, когда я ввел буквы вышло 'Ошибка', я сделал это через val, без проверки всё работает, 9 цифр ввожу, а вот щас после val приходится вводить 10 цифр и 1 цифра не засчитывается,потому что массив 3 на 3.
Что нужно сделать?
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
program z7;
const n=3;
var a:array[1..n,1..n] of integer;
    p,t1,i,j,k,ko:integer; t:string;
    b,ev,od:array[1..2*n] of integer;
begin
     writeln('Введите массив:');
     
readln(t);
     val(t,t1,p);
     if p>0 then writeln('Ошибка') else begin
     
k:=0;
     for i:=1 to n do
         for j:=1 to n do
         begin
              read(a[i,j]);
              if  a[i,j]<0 then begin k:=k+1; b[k]:=a[i,j]; end;
         end;
     writeln('Массив A:');
     for i :=1 to n do
     begin
          for j :=1 to n do
              write ( a [ i , j ]:4);
          writeln ;
     end ;
     writeln;
     writeln('Массив отрицательных элементов массива А:');
     for i:=1 to k do
         write(b[i]:4);
     k:=0;
     ko:=0;
     for i:=1 to n do
         for j:=1 to n do
         begin
             if odd(a[i,j]) then begin k:=k+1; od[k]:=a[i,j]; end;
             if not odd(a[i,j])  then begin ko:=ko+1; ev[ko]:=a[i,j]; end;
         end;
     writeln;
     writeln('Массив нечетных элементов массива A:');
     for i:=1 to k do
         write(od[i]:4);
     writeln;
     writeln('Массив четных элементов массива A:');
     for i:=1 to ko do
         write(ev[i]:4);
end;end.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2013, 19:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Защита от неправильного ввода при заполнении массива (Pascal ABC):

При вводе неправильного значения для N вывести сообщение об ошибке - Pascal ABC
Дано натуральное число N.Найти p=1*2*...*N.При вводе неправильного значения для N вывести сообщение об ошибке.

Защита от ввода неверного типа данных - Pascal ABC
Помогите пожалуйста написать код, чтобы программа выполнялась только при вводе цифр, а при попытке ввода других символов выдавалось...

Обработка двумерного массива. Защита от неправильного ввода - C++
Заполнить двумерный массив размерности n*m с клавиатуры только числами кратными 3, предусмотрев защиту элементов этого массива от...

Защита от неправильного ввода - C++
Приветствую, делаю контрольную работу по программированию, основное задание сделал, но вот решил добавить защиту от неправильного ввода, но...

Защита от неправильного ввода "Защита от дурака" - C (СИ)
Ввести элементы массива размерностью N&gt;100; Предусмотреть защиту на каждый ввод элемента массива N&gt;100; При не правильном вводе,...

Как при вводе неправильного e-mail вывести сообщение рядом с полем ввода? - JavaScript
Здравствуйте! Я в области web - программирования совсем новичок :( если кто сталкивался с подомным помогите пожалуйста. Мною написан...

1
Cyborg Drone
Модератор
5220 / 3085 / 1278
Регистрация: 17.08.2012
Сообщений: 9,960
26.12.2013, 20:40 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вы куда проверку-то влепили, и, главное, для чего? Она должна проверять каждый элемент массива. Было бы куда яснее, если бы Вы отформатировали код. Вот, подправил, кое-что добавил для красоты и понятности, сделал нормальную проверку ввода. И, блин, код Ваш отформатировал наконец!
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program z7;
 
const n = 3;
 
var a: array [1..n,1..n] of integer;
    p, t1, i, j, k, ko: integer;
    t: string;
    b, ev, od: array [1..2*n] of integer;
 
begin
  writeln('Введите массив:');
  k := 0;
  for i := 1 to n do
    for j := 1 to n do
      begin
        repeat
          write('a[', i, ', ', j, '] = ');
          readln(t);
          val(t, t1, p);
          if p > 0 then writeln('Ошибка, повторите ввод.')
        until p = 0;
        a[i, j] := t1;
        if a[i, j] < 0 then
          begin
            k := k + 1;
            b[k] := a[i, j]
          end;
      end;
  writeln('Массив A:');
  for i := 1 to n do
    begin
      for j :=1 to n do write (a[i, j]:4);
      writeln
    end;
  writeln;
  writeln('Массив отрицательных элементов массива А:');
  if k > 0
    then for i := 1 to k do write(b[i]:4)
    else write('Отрицательных элементов нет.');
  k := 0;
  ko := 0;
  for i := 1 to n do
    for j := 1 to n do
      begin
        if odd(a[i,j])
          then
            begin
              k := k + 1;
              od[k] := a[i, j]
            end
          else
            begin
              ko := ko + 1;
              ev[ko] := a[i, j]
            end
      end;
  writeln;
  writeln('Массив нечетных элементов массива A:');
  if k > 0
    then for i := 1 to k do write(od[i]:4)
    else write('Нечетных элементов нет.');
  writeln;
  writeln('Массив четных элементов массива A:');
  if ko > 0
    then for i := 1 to ko do write(ev[i]:4)
    else write('Четных элементов нет.');
  readln
end.
Всего Вам доброго.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2013, 20:40
Привет! Вот еще темы с ответами:

Стирание неправильного ввода - PHP
Вообщем не могу сделать что бы при вводе неправильного числа оно стиралось.Я сделал защиту что бы число не было отрицательным. &lt;?PHP ...

Исключение неправильного ввода - C#
Как обработать исключение которое обрабатывает ошибку, появляющуюся при вводе нескольких запятых в TextBox? Или как запретить повторный...

Зашита от неправильного ввода - C++
Здравствуйте! Подскажите пожалуйста как ограничить возможность ввода ? Ну к примеру мне нужно вводить всего 2 символа 'y' и 'n' остальные...

Как защититься от неправильного ввода - C++
#include&lt;iostream&gt; using namespace std; int main(){ setlocale(LC_ALL,&quot;Rus&quot;); const int N=5; int i=0; int x,y,ch; char...


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

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

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