Автор | Сообщение |
|
Отправлено: 08.05.12 14:41. Заголовок: Оцените, пожалуйста, выполнение c4, задача 1.
Здравствуйте. Не могли бы вы оценить написание программы, это первая моя программа из категории c4 (под номером 1), она получилась очень громоздкой. Хотелось бы услышать замечания по поводу исполнения, что в ней можно доработать. Вводил значения, вроде все работает). Но очень много времени потратил на написание, наверное часов 5. Надеюсь дальше будет значительно быстрее после решения еще нескольких задач. Скрытый текст http://s019.radikal.ru/i632/1205/b4/e3349d4ec424.jpg program c4_1; const n=366; var a: array[1..n] of record day: integer; month: integer; temperatyra: real; end; c, c1: string; sr_month: array[1..12] of real; sr_monthint: array[1..12] of integer; raznica:array[1..12] of real; sr_year,f: real; k,i: integer; begin sr_year:=0; for i:=1 to 12 do sr_month[i ]:=0; raznica[i ]:=0; for i:=1 to n do begin a[i ].month:=0; readln(c); c1:=copy(c,4,2); val(c1,a[i ].month,k); delete(c,1,6); val(c,a[i ].temperatyra,k); sr_month[a[i ].month]:=sr_month[a[i ].month]+a[i ].temperatyra; end; for i:=1 to 12 do begin sr_monthint[i ]:=i; case sr_monthint[i ] of 1,3,5,7,8,10,12: sr_month[i ]:=sr_month[i ]/31; 4,6,9,11: sr_month[i ]:=sr_month[i ]/30; 2: sr_month[i ]:=sr_month[i ]/29; end; sr_year:=sr_year+sr_month[i ]; end; sr_year:=sr_year/12; writeln(sr_year:0:1); for i:=1 to 12 do raznica[i ]:=abs(sr_year-sr_month[i ]); for i:=1 to 11 do begin for k:=11 downto i do if raznica[k]>raznica[k+1] then begin f:=raznica[k]; raznica[k]:=raznica[k+1]; raznica[k+1]:=f; end; end; for i:=1 to 12 do begin for k:=1 to 12 do if raznica[i ]=abs(sr_year-sr_month[k]) then begin raznica[i ]:=sr_year-sr_month; writeln(k,' ', sr_month[k]:0:1,' ', raznica[i ]:0:1); end; end; end.
|
|
|
|
Ответов - 1
[только новые]
|
|
|
Отправлено: 09.05.12 17:01. Заголовок: Если не сложно, оцен..
Если не сложно, оцените еще и выполнение второй задачи. Скрытый текст program c4_2; var c,f: char; s: string; i,k, max: integer; a:array['A'..'Z'] of integer; begin s:=''; repeat read(c); s:=s+upcase(c) until c='.'; k:=length(s); delete(s,k,1); k:=k-1; for i:=1 to k do begin for c:='A' to 'Z' do if ord(c)=ord(s[i ]) then a[c]:=a[c]+1; end; for c:='A' to 'Z' do max:=a['A']; f:='A'; for c:='B' to 'Z' do if max<a[c] then begin max:=a[c]; f:=c; end; writeln(f,' ',max); end.
| Конечно в ответах решения значительно красивее, просто интересно насколько баллов будут оценены эти задачи.
|
|
|