Автор | Сообщение |
|
Отправлено: 24.02.14 12:24. Заголовок: С4 №50
Здравствуйте! В решении этой задачи Вы используете оператор BREAK. (Можно обойтись и без него с помощью WHILE или REPEAT. Но с оператором BREAK как-то "по-крестьянски" проще.) Я слышала, что использование этого оператора не приветствуется проверяющими. Так ли это?
|
|
|
Ответов - 11
[только новые]
|
|
|
| Администратор
|
Сообщение: 644
|
|
Отправлено: 25.02.14 08:39. Заголовок: п пишет: Я слышала, ..
п пишет: цитата: | Я слышала, что использование этого оператора не приветствуется проверяющими. Так ли это? |
|
Нигде в критериях оценки работ я не видел, чтобы за использование break снижались баллы. Мое (спорное) мнение по поводу break можно посмотреть в блоге.
|
|
|
|
Отправлено: 25.02.14 15:30. Заголовок: Спасибо! Еще хотелос..
Спасибо! Еще хотелось бы спросить, почему решение так закручено: создание массива маленьких чисел, сравнение каждого со значением этого массива... Разве не проще так: program qqq; const n=555; var f,i,nom:integer; max,a: real; begin max:=0; f:=0; For i:= 1 to n do begin readln(a); if (a<1)and (a>max) then begin max:= a; nom:=i; end; if a>1 then begin writeln('номер',i); f:=1; end; end; if f=0 then writeln('номер',nom); end. Неудобство только в том, что ввод данных перемежается с выводом результатов. Это существенно?
|
|
|
|
| Администратор
|
Сообщение: 646
|
|
Отправлено: 25.02.14 18:36. Заголовок: проол пишет: Неудобс..
проол пишет: цитата: | Неудобство только в том, что ввод данных перемежается с выводом результатов. Это существенно? |
|
Да. Возможно, в критериях у проверяющих это будет прописано.
|
|
|
|
Отправлено: 01.03.14 18:42. Заголовок: Здравствуйте! Предла..
Здравствуйте! Предлагаю другое решение задачи №50. program qqq; const n=5; type nom=set of byte; var f,i,j:integer; max,a: real; MNN:nom; begin max:=0; For i:= 1 to n do begin readln(a); if (a<1)and (a>max) then begin max:= a; j:=i; end; if a>=1 then begin f:=1; Include(MNN,i); end; end; if f=0 then writeln(j) else for i:=1 to n do if i in MNN then begin write(i:5); Exclude(MNN,i); end; end. Хотелось бы учесть Ваши замечания.
|
|
|
|
| Администратор
|
Сообщение: 651
|
|
Отправлено: 03.03.14 15:33. Заголовок: >> Сигналов ..
>> Сигналов может быть очень много,... Если вы взяли set of byte, можете зафиксировать только 255 значений. Не пойдет.
|
|
|
|
Отправлено: 06.03.14 13:26. Заголовок: А мне кажется, что здесь получается цикл в цикле, а это не хорошо
Вот мой вариант: var n,i,m,j,nmax:integer; x,max:real; a:array[1..10] of integer; begin readln(n); for i:=1 to 10 do a:=0; max:=0; nmax:=0; m:=0; for i:=1 to n do begin readln(x); if (x<1) and (x>max) then begin max:=x; nmax:=i end; if x<1 then begin m:=m+1; a[m]:=i end; end; if n=m then writeln(nmax) else begin j:=1; for i:=1 to n do if (a[j]=0) or (i<a[j]) then write(i,' ') else j:=j+1 end; writeln; readln end. В массиве А я запоминаю только номера которые не будут печататься (их м.б. не больше 9) и поскольку они там получаются отсортированными, то цикл в цикле не нужен
|
|
|
|
| Администратор
|
Сообщение: 652
|
|
Отправлено: 06.03.14 17:33. Заголовок: Lavanda пишет: поско..
Lavanda пишет: цитата: | поскольку они там получаются отсортированными |
|
Не уверен.
|
|
|
|
Отправлено: 06.04.14 22:16. Заголовок: Lavanda пишет: if (..
|
|
|
|
Отправлено: 07.03.14 10:29. Заголовок: 100% В массиве А ни..
100% В массиве А никак не сохраняются значения найденных маленьких чисел (меньших единицы), а только их номера, т.е. А[1] - это номер первого встретившегося в потоке числа меньшего единицы, само число при этом м.б. равно 0.5 В тексте программы, к сожалению, неправильно отобразилась строка начального заполнения массива А нулями (после Readln(n))
|
|
|
|
| постоянный участник
|
Сообщение: 244
|
|
Отправлено: 02.04.14 09:59. Заголовок: Lavanda в вашем реше..
Lavanda в вашем решении есть ошибка, при N>10 возможен выход за пределы массива в строке цитата: | if (a[j]=0) or (i<a[j]) then write(i,' ') else j:=j+1 |
| можно изменить условие на цитата: | (j>10) or (a[j]=0) or (i<a[j]) |
| А в общем, Ваше решение действительно проще. Константин Юрьевич, я думаю это решение стоит включить в answC4.doc
|
|
|
|
| Администратор
|
Сообщение: 662
|
|
Отправлено: 06.04.14 15:12. Заголовок: oval пишет: думаю эт..
oval пишет: цитата: | думаю это решение стоит включить в answC4.doc |
|
Добавлено.
|
|
|
|