Название: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 16:11:58 Нужно составить программу в паскале
В линейной таблицы А (1 .. 10) найти максимальный элемент, стоящий на четных местах, и минимальный элемент, стоящий на не четных местах таблицы Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 16:15:33 только тело программы не нужно особо расписывать
Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 17:19:47 Люди хотя бы основу кому не сложно, олимпиаду завтра сдать нужно
Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 18:15:11 Как то так наверно: ???
const n = 10; var arr: array[1..n] of integer; max_num,min_num: integer; i, max_index,min_index: byte; begin i := 1; repeat //цикл с постусловием write ('Число: '); readln(arr[i ]); i := i + 1 until (arr[i-1] = 0) or (i > n); max_index := 2; //поиск максимального элемента в четных позициях таблицы max_num := arr[2]; i := 2; while i <= n do begin if arr[i ] > max_num then begin max_index := i; max_num := arr[i ]; i := i + 2 end; min_index := 1; //поиск минимального элемента в нечетных позициях таблицы min_num := arr[1]; i := 1; while i <= n do begin if arr[i ] < min_num then begin min_index := i; min_num := arr[i ]; i := i + 2 end; writeln ('Max = ',max_num); //вывод на экран максимального четного элемента writeln ('position: ', max_index); writeln ('Min = ',min_num); //вывод на экран минимального нечетного элемента writeln ('position: ', min_index); readln end. Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 18:59:16 блин, половину из этого мы не учили, ладно как-то выкручусь, всё равно спасибо
Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 19:01:12 а что вы не учили?
тут использованы 2 вида циклов, 2 типа чисел, массив и вывод на экран... Если мне не изменяет память, то это азы Паскаля Название: Re: Задача по информатике Отправлено: Overseer от Октябрь 25, 2011, 19:01:16 ээ тебе надо уметь объявлять массивы, for/while/until (по выбору) и if.
не верю что этому не учили и задали задание Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 19:02:26 for/while этим и пользуюсь
Название: Re: Задача по информатике Отправлено: Overseer от Октябрь 25, 2011, 19:04:36 тогда я не понимаю, что может быть непонятно в выше описанном коде
Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 19:06:05 until (arr[i-1] = 0) or (i > n);
эта функция паскаль я учу пару недель Название: Re: Задача по информатике Отправлено: Лев от Октябрь 25, 2011, 19:11:02 repeat/until - это тоже самое :)
Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 19:11:35 until (arr[i-1] = 0) or (i > n); Это постусловие цикла repeat эта функция паскаль я учу пару недель Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 19:14:03 я так понимаю тут собрались программисты, я сейчас допишу и скину своё решение буду благодарен если просмотрите
Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 19:15:20 Просто это элементарное программирование, для этого и программистом быть не надо
Название: Re: Задача по информатике Отправлено: Лев от Октябрь 25, 2011, 19:17:34 а как будущий программист, вы должны понимать, что "повторять вплоть до" и "пока так, делать эдак" - это аналогичные цикличные операции.
Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 19:27:05 извиняюсь если что-то очень глупое
N - минимальный M - максимальный const k = 10; var a: array[1..n] of integer; N,M,i: integer; begin writeln ('vvod tab a'); for i=1 to n do read (a) i:=1; N:=a[1] while i<k for i to k-1 do begin if a<N then N:=a; i:=i+2 end; begin while i<k i:=2; M:=a[2]; for i to k-1 do if a>M them M:=a; i:=i+2; end; writeln ('M= ',); writeln('N= ',); readln end. Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 19:30:24 я не программист и не будущий, я просто участник олимпиады, хотя и информатика один из моих любимых предметов
Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 19:40:25 извиняюсь если что-то очень глупое Выделила 2 ошибки, которые сразу бросаются в глазаN - минимальный M - максимальный const k = 10; var a: array[1..n] of integer; N,M,i: integer; begin writeln ('vvod tab a'); for i=1 to n do read (a) i:=1; N:=a[1] while i<k for i to k-1 do begin if a<N then N:=a; i:=i+2 end; begin while i<k i:=2; M:=a[2]; for u to k-1 do if a>M them M:=a; i:=i+2; end; writeln ('M= ',); writeln('N= ',); readln end. Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 19:43:32 Во втором случае i, а так обычный цикл в чем ошибка?
Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 19:44:38 Может я и ошибаюсь, но цикл
for i to k-1 do подразумевает увеличение на +1 числа i поэтому i:=i+2 не уместно в данном случае И этот вид цикла нам не подходит... Прошу меня поправить, это было давно и неправда :D Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 19:47:01 Во втором случае i, а так обычный цикл в чем ошибка? Синтаксис данного цикла выглядит так:for начальное значение счетчика (i:=1) to конечное значение счетчика (20) do begin Тело цикла end; У тебя начальное значение в цикле параметру i не присвоено ??? Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 19:48:11 увеличивая 2+2+2... всегда число парное оно по идее должно идти по парным
сначала i:=2 потом i:=i+2 Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 19:49:57 Исходя из твоего кода число i будет увеличиваться на 3
Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 19:52:38 но сначала i=1 потом 1+2=3
Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 19:56:08 но сначала i=1 потом 1+2=3 Сам по себе цикл for увеличивает на каждем круге значение i на +1...При этом ты еще искусственно на +2 увеличиваешь...Итого на каждом круге +3 получается... Воспользуйся циклом while Очень легко и просто в моем примере показано, как с помощью while найди нужные минимальные и максимальные значения... Название: Re: Задача по информатике Отправлено: loki от Октябрь 25, 2011, 19:58:48 repeat, until мы их не проходили информатик заподозрит...
Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 25, 2011, 20:01:44 Очень легко и просто в моем примере показано, как с помощью while найди нужные минимальные и максимальные значения... Цикл while вы проходили...У тебя ошибка в нахождении максимального и минимального элементов... Заполнение массива, которое я организовала с помощью repeat, until я сейчас даже не смотрю Ладно, дальше сам компилируй свою програмку, у тебя есть работоспособный пример перед глазами :peace: А я - спать :zzz: Название: Re: Задача по информатике Отправлено: moonlight от Октябрь 25, 2011, 22:04:28 const N=10;
var A:array[1..N]of integer; i:integer; min,max:integer; begin min:=1; max:=2; for i:=1 to N do begin A:=Random(100); Write('A[',i,']=',A,' '); end; Writeln; for i:=3 to N do begin if((i mod 2)=1)and(A<A[min])then min:=i else if((i mod 2)=0)and(A>A[max])then max:=i end; Writeln('min=',min,' A[',min,']=',A[min]); Writeln('max=',max,' A[',max,']=',A[max]); end. почемуто вместо A [ i ] копируется-вставляется A (http://savepic.su/519125.png) Название: Re: Задача по информатике Отправлено: Вилли ☂ от Октябрь 25, 2011, 22:12:20 На случай, если Вы "mod" не изучали:
Код: # Если t = 1 - нечетные, t = 2 - четные Название: Re: Задача по информатике Отправлено: Вилли ☂ от Октябрь 25, 2011, 22:18:34 почемуто вместо A [ i ] копируется-вставляется A используй [ code ] *** [ / code ]Название: Re: Задача по информатике Отправлено: moonlight от Октябрь 25, 2011, 22:34:16 эта задача просто пример для изучения оператора цикла.
на олимпиадную никак не тянет. Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 26, 2011, 07:09:19 На случай, если Вы "mod" не изучали: Мне кажется, или в этой строке ошибка? :-\Код: # Если t = 1 - нечетные, t = 2 - четные Код: i:=1; N:=a[1]; N:=a[2]; t=1; Код: i:=1;N:=a[1]; M:=a[2]; t=1; И тут тоже... :-\ Код:
Наверно так? Код:
Название: Re: Задача по информатике Отправлено: Вилли ☂ от Октябрь 26, 2011, 07:58:34 Ай молодца! :bravo2: :bigkiss:
Моя школа :tianchik: Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 26, 2011, 08:07:14 Ай молодца! :bravo2: :bigkiss: :-[Моя школа :tianchik: а Вилли двоечник :tianchik: Название: Re: Задача по информатике Отправлено: Вилли ☂ от Октябрь 26, 2011, 12:49:49 :-[ А у нас это хорошо :tianchik:а Вилли двоечник :tianchik: ссылка (http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%86%D0%B5%D0%BD%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9#.D0.93.D0.B5.D1.80.D0.BC.D0.B0.D0.BD.D0.B8.D1.8F) Вики знает больше Название: Re: Задача по информатике Отправлено: Ленка Фоменка от Октябрь 26, 2011, 13:01:38 :-[ А у нас это хорошо :tianchik:а Вилли двоечник :tianchik: ссылка (http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D1%86%D0%B5%D0%BD%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D0%B9#.D0.93.D0.B5.D1.80.D0.BC.D0.B0.D0.BD.D0.B8.D1.8F) Вики знает больше Вилли хорош :tianchik: :D Название: Re: Задача по информатике Отправлено: Лев от Октябрь 26, 2011, 15:31:21 Блин, не успел :)
|