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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2014, 18:31   #1
adrenalin142
Пользователь
 
Регистрация: 26.04.2014
Сообщений: 20
По умолчанию Трудности с одномерным массивом(Pascal)

Здравствуйте форумчане. Пожалуйста прошу помочь разобраться с ошибкой в программе.
Задание такое: функция получает одномерный массив и значение, далее возвращает номер позиции на которой находится значение в массиве.
Программа работает неправильно. В чем моя ошибка?
Текст программы:
Код:
program odn_massiv;
{$apptype console}
uses
SysUtils,windows;
const k=5;
type
index = 0..k-1;
vector = array[index] of integer;
var
i,m,b:integer;
a:vector;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
for i:=0 to k-1 do
begin
  write('a[',i,']=');
  readln(a[i]);
end;
readln(m);
write('ошибка');
for i:=0 to k-1 do
if m=a[i] then b:=i;
writeln(b);
readln;
end.
adrenalin142 вне форума Ответить с цитированием
Старый 18.06.2014, 19:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
функция получает
Ошибаешься. Функция тут отсутствует.
Цитата:
Программа работает неправильно.
Откуда такие выводы?
Цитата:
readln(m);
write('ошибка');
Зачем "ошибка" написал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.06.2014, 19:59   #3
adrenalin142
Пользователь
 
Регистрация: 26.04.2014
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ошибаешься. Функция тут отсутствует.

Откуда такие выводы?

Зачем "ошибка" написал?
1)Я знаю что функции нет, но так звучит задание.
2) Программа всегда выдает 'ошибка'
3) 'ошибка' вводится с целью показать что позиция в которой должно быть введенное нами значение отсутствует

ЗЫ: если удалить write('ошибка'); то приложение работает, но если неправильное введеное значение, то выдает нам 0.

Последний раз редактировалось adrenalin142; 18.06.2014 в 20:01.
adrenalin142 вне форума Ответить с цитированием
Старый 18.06.2014, 20:14   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но так звучит задание.
Ну тогда твоя программа полностью не подходит как четкое решение.
Цитата:
Программа всегда выдает 'ошибка'
Вот и я спрашиваю - зачем ты там поставил вывод слова "ошибка"
Цитата:
'ошибка' вводится с целью показать что позиция в которой должно быть введенное нами значение отсутствует
Тогда как минимум так:
Код:
function aga(m:integer):Boolean;
var i:integer;
begin
for i:=0 to k-1 do
 if m=a[i] then begin write(i); aga:=true; exit;
aga:=false;
end;
и:
Код:
if not aga(m) then write('А вот нема черной кошки в темной комнате');
Тогда хоть на правду будет похоже.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.06.2014, 20:28   #5
adrenalin142
Пользователь
 
Регистрация: 26.04.2014
Сообщений: 20
По умолчанию

Stilet, спасибо
adrenalin142 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с одномерным массивом в Pascal DeadKeLeVRa Помощь студентам 1 17.06.2013 20:13
Задача с одномерным массивом. Иван46 Помощь студентам 2 27.04.2012 11:19
трудности с двумерным массивом LuBuMaster Общие вопросы C/C++ 11 03.12.2009 19:01
работа с одномерным массивом _Solomon_ Помощь студентам 1 07.06.2007 12:06