Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 21:13   #1
tabanga
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 10
По умолчанию Задача на массивы

Ребята помогите исправить программу

Задан массив целых чисел, пользователь вводит число, выяснить существует ли такое числов в массиве.

При вводе числа 0 работает не правильно.

PHP код:
Program massiv2;

Var 
m:array [1..20of integer;
a,i,b:integer;

begin

Randomize
;
for 
i:=1 to 20 do begin
               m
[i]:=random(101)-random(100);
               
Write (m[i],' ');
               
end;
writeln (' Введите число ');
readln (b);
a:=0;
for 
i:=1 to 20 do begin
                  
if m[i]=b then a:=b;

                  
end;
if 
b=a then Writeln (' Такое число существует ')
       else 
Writeln (' Такого числа нету ');
end
tabanga вне форума Ответить с цитированием
Старый 13.01.2011, 22:09   #2
filvika
Пользователь
 
Аватар для filvika
 
Регистрация: 25.08.2010
Сообщений: 25
По умолчанию

Код:
if a <> 0 then Writeln ('Такое число существует ')
где a - индекс последнего искомого числа в массиве
filvika вне форума Ответить с цитированием
Старый 13.01.2011, 22:33   #3
tabanga
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 10
По умолчанию

Если в массиве встречается число 0, то все равно выводит сообщение о том, что такого числа нет
tabanga вне форума Ответить с цитированием
Старый 13.01.2011, 22:47   #4
filvika
Пользователь
 
Аватар для filvika
 
Регистрация: 25.08.2010
Сообщений: 25
По умолчанию

Вариант 1:
Код:
a:=-999; // Число, которое в принципе не может встретиться в массиве 
...
if a <> -999 then Writeln ('Такое число существует ')
Или вариант с переменной типа boolean
Код:
var
    m: array [1..20] of integer;
    i, b: integer;
    a: boolean;
begin
    randomize;
        for i := 1 to 20 do
        begin
            m[i] := random(101)-random(100);
            write(m[i], ' ');
        end;
    writeln;
    writeln(' Введите число: ');
    readln(b);
    a := false; //  такого числа нет
        for i := 1 to 20 do
            if m[i] = b then
            begin
                a := true; // Такое число встретилось
                break; // Выход из цикла
            end;

        if a then writeln (' Такое число встречается в массиве')
        else writeln (' Такого числа нет в массиве');
    readln;
end.
filvika вне форума Ответить с цитированием
Старый 13.01.2011, 23:12   #5
tabanga
Пользователь
 
Регистрация: 10.01.2011
Сообщений: 10
По умолчанию

Спасибо большое
tabanga вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на массивы KirkHammett Паскаль, Turbo Pascal, PascalABC.NET 4 06.01.2011 10:08
Задача на массивы _dandelion_ Паскаль, Turbo Pascal, PascalABC.NET 8 16.06.2009 06:12
Задача на массивы Альбиша Паскаль, Turbo Pascal, PascalABC.NET 0 08.04.2009 19:03
Задача на массивы С/C++ Nina+ Помощь студентам 10 12.03.2009 20:43