Автор | Сообщение |
|
Отправлено: 09.02.12 12:43. Заголовок: Задача С2
Дан прямоугольный массив целых положительных чисел 10 х 20. Опишите на русском языке или на одном из языков программирования алгоритм поиска строки с наименьшей суммой элемен-тов. Вывести на печать номер строки и сумму ее элементов. Предполагается, что такая строка единственна.
|
|
|
Ответов - 16
, стр:
1
2
All
[только новые]
|
|
|
| Администратор
|
Сообщение: 89
|
|
Отправлено: 09.02.12 13:01. Заголовок: Пожалуйста сформулир..
Пожалуйста сформулируйте вопрос.
|
|
|
|
Отправлено: 20.05.12 11:42. Заголовок: Проверьте меня :sm12..
Проверьте меня const N=10; const M=20; var a:array[1..N,1..M] of integer; min, sum, i, k, g, t, stroka:integer; begin {вводим массив N x M} sum:=0; for i:=1 to M do sum:=sum+a[1,i]; {сумма элементов первой строки} for g:=2 to N do for t:=1 to M do while g<>g+1 do {-------------- вот тут не уверен, будет ли программа полностью все строки проверять или же остановится на проверке одной заданной строки} k:=a[g,t]+k; if k<sum then begin sum:=k; stroka:=g; end; writeln(stroka); writeln(sum); end.
|
|
|
|
| постоянный участник
|
Сообщение: 80
|
|
Отправлено: 20.05.12 11:51. Заголовок: 1ро4ка_двадва88 пише..
1ро4ка_двадва88 пишет: при каком g это условие станет ложным? цитата: | for g:=2 to N do for t:=1 to M do while g<>g+1 do k:=a[g,t]+k; |
| в k будет записана сумма всех элементов массива со 2 строки по N я бы оценила это решение в 0 баллов for g:=2 to N do begin for t:=1 to M do while g<>g+1 do k:=a[g,t]+k; if k<sum then begin sum:=k; stroka:=g; nd; end;
|
|
|
|
Отправлено: 20.05.12 12:02. Заголовок: Понял, спасибо. Но, ..
Понял, спасибо. Но, насколько я могу анализировать ситуацию с егэ 2012, задач на двумерные массивы не будет. Вообще, очень странная ситуация сложилась в этом году. Пришел какой то http://www.youtube.com/watch?v=nyClYuq3_9Q на место куратора ЕГЭ по информатике, перевернул все с ног на голову, никаких пособий для подготовки к экзамену не выпустил, из того что мы имеем на данный момент (за неделю до экзамена) есть всего лишь 1 демо работа и 1 тренировочная, по которым можно только догадываться, что же будет ждать школоло 28 мая
|
|
|
|
Отправлено: 26.05.12 00:56. Заголовок: C2 30 min:=1000; fo..
C2 30 min:=1000; for i:=1 to N do begin if (A<min) and ((A>=100) and (A<=999)) then begin min:=A; writeln(min); end else writeln('Нету трехзначных чисел'); end. Правильно?В ответах немного по-другому.
|
|
|
|
| постоянный участник
|
Сообщение: 118
|
|
Отправлено: 26.05.12 09:47. Заголовок: Viken пишет: min:=..
Viken пишет: цитата: | min:=1000; for i:=1 to N do begin if (A[ i]<min) and ((A[ i]>=100) and (A[ i]<=999)) then begin min:=A[ i]; if min<> 1000 then writeln(min); end else writeln('Нету трехзначных чисел'); end. |
| вы свою программу запустите, забавные вещи она будет выдавать :) если очередное число меньше минимума, то мы его печатаем, а иначе печатаем нет трехзначных чисел, я думаю это решение 0 баллав цитата: | Почему min:=9999(или другое любое число,вне данного диапазона),а не min:=1000? |
|
потому-что 9999 и есть любое число а какое отношение это имеет к 27 задаче? видимо в 4 утра лучше спать
|
|
|
|
Отправлено: 26.05.12 01:23. Заголовок: C2 28 Почему min:=9..
C2 28 Почему min:=9999(или другое любое число,вне данного диапазона),а не min:=1000?
|
|
|
|
Отправлено: 26.05.12 01:34. Заголовок: С2 27 a>=0 не б..
С2 27 a>=0 не будет же считаться за ошибку?в ответах стоит знак ">"
|
|
|
|
Отправлено: 26.05.12 03:02. Заголовок: С2 27 min:=999 for ..
С2 25 min:=999 for i:=1 to N do if (a>=0) and (a<=10000) and (a>=100) and (a<=min) then min:=a; writeln(min) else writeln('Таких чисел нет'); end. Правильно?В ответах по-другому немного.
|
|
|
|
Отправлено: 26.05.12 16:13. Заголовок: Viken пишет: С2 25 ..
Viken пишет: цитата: | С2 25 min:=999 for i:=1 to N do if (a>=0) and (a<=10000) and (a>=100) and (a<=min) then min:=a; writeln(min) else writeln('Таких чисел нет'); end. Правильно?В ответах по-другому немного. |
| условия, выделенные жирным проверять не надо. изначально вы задали в минимум наибольшее трехзначное число - это неправильно. 999 может быть числом, которое мы ищем, а у вас оно заведомо отбрасывается. нет, у вас оно получает ПРИОРИТЕТ во всей программе, т.к если последный встретившийся 3-х значный элемент будет 999, то он и будет минимумом - ошибка
|
|
|
|
| постоянный участник
|
Сообщение: 122
|
|
Отправлено: 26.05.12 18:17. Заголовок: Viken пишет: for i:..
Viken пишет: цитата: | for i:=1 to N do if (a>=0) and (a<=10000) and (a>=100) and (a<=min) then min:=a; writeln(min) else writeln('Таких чисел нет'); end. |
| для начала, программа не от компилируется, прежде чем писать сюда попробуйте прогнать ее на компьютере
|
|
|
|
|
Отправлено: 26.05.12 18:38. Заголовок: Не знаю, можно ли зд..
Не знаю, можно ли здесь размещать ссылки. Тут есть несколько тренировочных и диагностических работ за 2012 год: http://www.alleng.ru/d/comp/com_ege-tr.htm Простите меня, если что, Константин Юрьевич :)
|
|
|
|
Отправлено: 27.05.12 17:08. Заголовок: С2 26 Можно ли было..
С2 26 Можно ли было в этой задаче вместо такой проверки (из ответов): цитата: | for j:=1 to a[i] do if a[i] mod j = 0 then k:= k + 1; |
| сделать такую: for j:=1 to 10 do if a[i] mod j = 0 then k:= k + 1; Нужно ли в решении приводить математическое доказательство или писать какой-нибудь комментарий?
|
|
|
|
| Администратор
|
Сообщение: 363
|
|
Отправлено: 27.05.12 17:28. Заголовок: Ксения пишет: сделат..
Ксения пишет: цитата: | сделать такую: for j:=1 to 10 do if a mod j = 0 then k:= k + 1; |
|
Да, учитывая, что все значения не больше 100. цитата: | Нужно ли в решении приводить математическое доказательство или писать какой-нибудь комментарий? |
|
Вообще говоря, не обязательно. Но, возможно, это облегчит эксперту понимание вашей мысли.
|
|
|
|
Отправлено: 27.05.12 17:11. Заголовок: ребят как правильней..
ребят как правильней оформлять с2?: 1)k:=0; for i:=1 to N do begin if (10<=a[i]) and (a[i]<=99) and ((a[i] mod 10 = 9) or (a[i] div 10=9)) then k:=k+1; end; writeln(k); или 2)k:=0; for i:=1 to N do if (10<=a[i]) and (a[i]<=99) and ((a[i] mod 10 = 9) or (a[i] div 10=9)) then k:=k+1; writeln(k); при вот таком условии:Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество элементов массива, десятичная запись которых содержит ровно 2 цифры, причём хотя бы одна из этих цифр – цифра 9..
|
|
|
|
| постоянный участник
|
Сообщение: 130
|
|
Отправлено: 27.05.12 18:51. Заголовок: Den пишет: ребят ка..
Den пишет: цитата: | ребят как правильней оформлять с2?: |
| абсолютно все равно, по синтаксису после do может стоять один оператор, это if , а взяли вы его в операторные скобки или нет роли не играет, другое дело если по логике программы нам необходимо после do сделать два действия, например, что-то вычислить и напечатать, тогда begin - end обязательны
|
|
|
Ответов - 16
, стр:
1
2
All
[только новые]
|
|