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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2012, 16:24   #11
kate_cinnamon
Новичок
Джуниор
 
Регистрация: 26.02.2012
Сообщений: 6
По умолчанию

учитель,сказал,что не только это!
kate_cinnamon вне форума Ответить с цитированием
Старый 26.02.2012, 17:31   #12
zhan313
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 44
По умолчанию

Код:
var a:array[1..100] of Integer;
t1,t2,i,n,m,k:Integer;
begin
write('n:=');readln(n);
write('t1:=');readln(t1);
write('t2:=');readln(t2);
writeln('Элементы массива:');
m:=0;
for i:=1 to n do begin write(i,'->');readln(a[ i]);
if (a[i]=t2)and(m=0)  then m:=i; end;
k:=0;
for i:=m+1 to n do if (a[i]<t1) then k:=i;
if k<>0 then
writeln('min index: ',k)
else writeln('net elementov');
end.
zhan313 вне форума Ответить с цитированием
Старый 26.02.2012, 19:22   #13
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Код:
program kate;

{$APPTYPE CONSOLE}

uses
  SysUtils;
  label R;//метка для команды goto
var a:array of integer; //одномерный массив из N элементов;
t1,//число для сравнения;
t2,//число для начала поиска;
i,//служебный;
n,//размерность массива;
p1,//позиция последнего, наименьшего элемента <t1;
p2:integer;//позиция элемента t2;
begin
p1:=-1;
p2:=-1;
R:
writeln('vvedite razmernost massiva bol''she 1');
readln(n);//заносим в n размерность массива a
//***********************
if N<=1 then//проверяем введенное число
begin//если меньше или равно 1
writeln('vy vveli chislo men''she ili ravno 1');
goto R;
end;
//***********************
SetLength(a,n);//устанавливаем размерность массива a равной n
writeln ('vvedite ',n,' elementov massiva');
//***********************
for i:=0 to n-1 do
begin
readln(a[i]);//заполняем массив значениями
end;
//***********************
writeln('vvedite granicy t1 i t2');
readln(t1,t2);
//***********************
for i:=0 to n-1 do
begin
if a[i]=t2 then
begin
p2:=i;//находим позицию t2 и
break;//завершаем цикл
end;
end;
//***********************
if p2=-1 then //если t2 не найдено то выходим
begin
writeln('net elementov, dal''neishaya rabota neimeet smysla');
readln;//ожидаем нажатия ввода
exit;//выход из программы
end;
//***********************
for i:=p2+1 to n-1 do
begin
if (a[i]<t1) and (p1=-1) then p1:=i;//если первое совпадение
if (a[i]<t1)and(a[i]<a[p1])then p1:=i;//если второе, и число меньше предыдущих
end;
//***********************
if p1=-1 then
begin
writeln('net elementov, dal''neishaya rabota neimeet smysla ');
readln;//ожидаем нажатия ввода
exit;//выход из программы
end else
begin
writeln('nomer poslednego minimal''nogo elementa = ',p1+1);
readln;//ожидаем нажатия ввода
exit;//выход из программы
end;
//***********************

end.
как-то так

Последний раз редактировалось Arhangel7; 27.02.2012 в 18:09.
Arhangel7 вне форума Ответить с цитированием
Старый 27.02.2012, 06:25   #14
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

2 zhan313:
у тебя не ищется минимум.

2 Arhangel7:
ты наворотил слишком много и запутался в логике.. У тебя ищется не последний, а первый минимум. Далее, goto - ТАБУ. А показывать их школьникам - преступление )). Хоть почистил бы код, раз уж не используешь.. И делай же отступы! Невозможно же читать, человек не компилятор..

Теперь по теме..
Катюшка-Корица, вот тебе практически твой (ты молодец!)) код с добавленными несколькими строками (и чуток подправленный, см. комменты). Комметнтарии сишные, Turbo их не поймет, используй FPC либо сотри, либо переделай на {..}
Код:
program kate;
var
  a: array [1..100] of integer;
  i,n,min,t1,t2: integer;
  p: boolean;

begin
  writeln('vvedite razmer massiva');  // размерность - это сколькимерный массив, тут надо размер
  readln(n);
  writeln ('vvedite ',n,' elementov massiva');  // не забывай пробельчики
  for i:=1 to n do readln(a[i]);
  writeln('vvedite granizi t1 i t2');
  readln(t1,t2);
  p:= false;
  min:=1;
  for i:= 1 to n do begin
    if p and (a[i]<t1) and ((min=1) or (a[i]<=a[min])) then min:= i
    else p:= p or (a[i]=t2)
  end;
  if min=1 then writeln('no appropriate elements in array') // пиши либо по-русски, либо по-англ
  else writeln('the index of the wanted element is ',min)   // Latinitsa - уродство и неуважение к читаеющему
end.
Если что-то неясно - задавай вопросы.
Успехов тебе! ))

P.S. Сочувствую тебе и преклоняюсь перед твоей выдержкой, эти флудеры-пустомели меня бы давно вывели из себя..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 27.02.2012, 17:32   #15
kate_cinnamon
Новичок
Джуниор
 
Регистрация: 26.02.2012
Сообщений: 6
По умолчанию

Спасибо,TinMin,показала вашу прогу,учитель сказал,что там только 2 условия.Какие еще нужно,чтобы получилось?
kate_cinnamon вне форума Ответить с цитированием
Старый 27.02.2012, 18:08   #16
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Цитата:
2 Arhangel7:
ты наворотил слишком много и запутался в логике..
как можно запутаться в линейном алгоритме?
Цитата:
У тебя ищется не последний, а первый минимум.
вот этот участок кода ищет наименьшее число (так я понял из задания),
чтобы переделать, достаточно строку удалить
Код:
//***********************
for i:=p2+1 to n-1 do
begin
if (a[i]<t1) and (p1=-1) then p1:=i;//если первое совпадение
if (a[i]<t1)and(a[i]<a[p1])then p1:=i;//если второе, и число меньше предыдущих
end;
//***********************
Цитата:
Далее, goto - ТАБУ.
А показывать их школьникам - преступление )). Хоть почистил бы код, раз уж не используешь..
Вот тут я согласен, но в этом случае, GOTO очень подошла, на скорость выполнения кода не влияет, а проверка не помешает.
Цитата:
И делай же отступы! Невозможно же читать, человек не компилятор..
каждый пишет, так как он привык, там пояснений более чем достаточно, чтобы код понять и код разделен на блоки...
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 27.02.2012, 18:18   #17
Sega_AS
Пользователь
 
Регистрация: 22.02.2012
Сообщений: 15
По умолчанию

В конце программы end.
НУ и WriteLn -вывода значений ваших переменных
Sega_AS вне форума Ответить с цитированием
Старый 29.02.2012, 06:34   #18
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Arhangel7 Посмотреть сообщение
как можно запутаться в линейном алгоритме?
Гм. Тебе виднее )) А как можно сделать код к такой простой задаче, выдающий неверный ответ??

Цитата:
вот этот участок кода ищет наименьшее число (так я понял из задания),
чтобы переделать, достаточно строку удалить
Ну так удали, если надо )). У тебя carte blanche - делай, что хошь, только выдай правильный результат.
А заодно перечитай задание.

Цитата:
Сообщение от kate_cinnamon Посмотреть сообщение
Спасибо,TinMin,показала вашу прогу,учитель сказал,что там только 2 условия.Какие еще нужно,чтобы получилось?
Катюшка, я не знаю, что он имел в виду. Что значит "там только 2 условия"? Какие два? Программа выполняет в точности то, что сказано в том условии, которое ты привела. Может, ты забыла что-то? Допиши тогда..

Я так думаю, он ошибся. Заставь его прогнать прогу на тестовых данных, а не просто посмотреть. И сама тоже потестируй, пожалуйста.

Кать, не совсем по теме, но по делу.. Постарайся вникнуть во все - и в условие, и в мои дополнения к твоему коду, и в слова твоего препа. Это единственно правильный способ действий. Не надо быть простым посредником между форумом и препом, от этого не будет толку. Я был так рад увидеть, что ты что-то все же написала, а не просто закинула условие, как большинство тут. Не порти это впечатление - иначе я пас.. Терпеть не могу лоботрясов (лоботрясок тож)).
Я отвечу на все твои вопросы ПО ДЕЛУ. Вникай. Успехов тебе.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 29.02.2012, 21:38   #19
Arhangel7
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 90
По умолчанию

Цитата:
Ну так удали, если надо )). У тебя carte blanche - делай, что хошь, только выдай правильный результат.
А заодно перечитай задание.
перечитал, проверил свой и твой Алг, аналогичные результаты, как-то так.
или кусок неверного кода укажи или немели языком - пустомеля.
как-то так
Arhangel7 вне форума Ответить с цитированием
Старый 01.03.2012, 00:16   #20
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Arhangel7
во-первых, себя надо вести СКРОМНЕЕ.

во-вторых, код у Вас ужасный!
Начиная с того, что Вы написали код под Delphi (а не под Паскаль) и заканчивая использованием goto! (фи! )

в-третьих, решения ваш код выдаёт неверные!
Код:
vvedite razmernost massiva bol'she 1
10
vvedite 10 elementov massiva
1
1
10
2
2
11
5
4
4
5
vvedite granicy t1 i t2
6 11
nomer poslednego minimal'nogo elementa = 8
правильный ответ - 9


Код:
vvedite razmernost massiva bol'she 1
10
vvedite 10 elementov massiva
1
1
2
1
1
1
1
1
1
1
vvedite granicy t1 i t2
2 2
nomer poslednego minimal'nogo elementa = 4
правильный ответ: 10

Достаточно?! или ещё ошибки поискать?!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Класс для представления телефонного справочника Армана Помощь студентам 7 08.04.2012 06:57
Опишите класс Паскаль ASC NET Студент-заочник Помощь студентам 0 22.01.2012 11:22
Класс VIK_aka_TOR Общие вопросы C/C++ 2 27.03.2011 17:06
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42
Задачи в паскаль и бейсик 10 класс!!! Иллоночка Помощь студентам 2 24.12.2009 22:32