![]() |
Сейчас решаю задачки С2 по информатике.Написал две программы,но репетитор сказал,что их надо решать рационально.Вот я бы и хотел себя проверить,рационально ли я их решил.
Задачи то легкие: 1)Дан целочислительный массив из 30 элементов.Они могут принимать значения от 0 до 100 - баллы,полученные на Егэ учениками.Нужно написать программу,которая подсчитывает и выводит средний балл учащихся,сдавших экзамен(более 29 баллов набравшие).Гарантируется,что хотя бы один ученик сдал экзамен. Вот программа: Const N=30; Var A: array [1..N] of Integer; i,x,y:Integer; s:real; Begin for i:=1 to N do readln(A[i]); For i:=1 to N do If (A[i]<0) or (A[i]>100) then Writeln('Takogo balla net' , '(',A[i],')'); x:=0; {SUMMA} y:=0; {kolichestvo} i:=1; for i:=1 to N do if (A[i]>20) and (A[i]<=100) then begin X:=X+A[i]; y:=y+1; end; S:=X/Y; {sredniy ball} Writeln('x=',x);readln; writeln('y=',y);readln; Writeln('S=',S :2:2); Readln; End. 2)Дан целочислительный массив из 30 элементов.Они могут принимать значения от 160 до 200 - рост учащихся выпускного класса.Нужно написать программу,которая подсчитывает и выводит минимальный рост игрока баскетбольной команды.Гарантируется,что хотя бы один ученик играет в команде. Программа: Const N=30; Var A: array [1..N] of Integer; i,x,y:Integer; s:real; Begin for i:=1 to N do readln(A[i]); For i:=1 to N do If (A[i]<160) or (A[i]>200) then Writeln('S takim rostom uchenika ne vozmut v komandu'); If (A[i]<70) or (A[i]>220) then Writeln('Nakogo rosta ne mozhet bit u vipusknika'); If (A[i]<0) then Writeln('Takogo rosta ne bivaet'); x:=200; {min} for i:=1 to N do if (A[i]>=160) and (A[i]<=200) then if A[i] Writeln('x=',x); readln; End. |
К@t@LoNeЦ, В первой задачке у тебя в условии 29 написано, а в программе 20.
Во второй вообще хрен знает что ты написал - во-первых зачем выделенное?: Цитата:
Должно быть: for i:=1 to N do begin readln(A[i]); If (A[i]<160) or (A[i]>200) then Writeln('S takim rostom uchenika ne vozmut v komandu'); If (A[i]<70) or (A[i]>220) then Writeln('Nakogo rosta ne mozhet bit u vipusknika'); If (A[i]<0) then Writeln('Takogo rosta ne bivaet'); If (A[i]>160) or (A[i]<200) then i:=i+1; end; (Ежели я чего не путаю, уже с пару лет ТП не открывал...) Во вторых здесь вообще бред какой-то: Цитата:
|
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
ты просто под один for загнал,смысл то не меняется.Программа у меня работает правильно,я ее во всех случаях протестировал. х - это и есть минимальное значение(рост).просто в задании нельзя менять переменные.Весь Var - это все из дано |
Цитата:
Цитата:
Т.е. получишь на экране цифру 200 столько раз, сколько у тебя в массиве будет значений соответствующих пределам 160-200. Насколько я понимаю это не соответствует условию задачи и не знаю как ты там её тестировал... Цитата:
|
Foxara, а все пардон,а не "по ошибке скопировал",а не докопировал:finest:
вот что должно быть: for i:=1 to N do if (A[i]>=160) and (A[i]<=200) then если A[i]>х тогда х присуждай значение A[i] ; Writeln('x=',x); readln; End. эээ че за хрень пишу тескт,а остается только это он не пишет текст после if A[i] короче у меня там : если A[i] меньше х тогда x:=A[i]; |
Цитата:
ЗЫ: Все, нашел в исходном коде, все норм. |
вот еще одна задача,только я ее вапсче не могу понять:
Также дан массив из 30 элементов.Нужно найти и вывести номера двух элементов,наименее отличающихся друг от друга. Что значит наименее отличающиеся друг от друга???:st: |
Цитата:
Цитата:
|
Подключили вай фай через мой модем, сижу только я, но инет тормозит. Вырубается часто, аська буквально каждые 10 минут перезагружается, качать тоже ничего невозможно, хотя скорость 4 мегабита. В чем может быть проблема?
|
03 августа 2025 года. Воскресенье - 08:26 (Часовой пояс GMT +4). |
Русский vBulletin v3.5.2, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Перевод сделал zCarot