Помогите плз с задачейЮ оч нужно =) Вася Иванов получил за год 250 оценок по алгебре. Определите сколько среди них пятёрок, четверок и троек. НАйти среднюю оценку за год по алгебре. Заранее пасибо)
Артемий
9.02.2007 0:23
Данные оценок хранятся в массиве?Пользователь руками оценки вводит?
SOKOLx
9.02.2007 0:24
я хз я вообщеначинающий в паскале, нам в таком виде задачу продиктовали)
volvo
9.02.2007 0:25
Что не получается?
Опиши массив
var
grades: array[1 .. 5] of integer;
, при вводе очередной оценки (назовем ее X) просто напросто увеличивать arr[X] на единицу... Тогда в конце процесса у тебя в arr[i] будет храниться число оценок равных i...
Где проблема?
SOKOLx
9.02.2007 0:29
Цитата(Артемий2 @ 8.02.2007 20:23)
Данные оценок хранятся в массиве?Пользователь руками оценки вводит?
нет ничего вводить ненадо)
Артемий
9.02.2007 0:52
Тогда описывай как константу:
const
a: array [1..250] of Integer = ({Тут твои данные об оценках...});
SOKOLx
9.02.2007 0:54
Я школьник =) мы пока константы непроходили только начали массивы
Артемий
9.02.2007 0:55
Ну а где тогда, раз не вводится руками, они хранятся?Ты не ответил на этот вопрос!
SOKOLx
9.02.2007 1:00
Цитата(Артемий2 @ 8.02.2007 20:55)
Ну а где тогда, раз не вводится руками, они хранятся?Ты не ответил на этот вопрос!
хм...
Добавлено через 4 мин. тогда наверное надо всё таки вводить)
Артемий
9.02.2007 1:16
Тогда заполняй и вычисляй среднее..
program Project1;
var
arr: array [1..250] of Integer;
var
i,d,a,o: Integer;
e: real;
begin
writeln('Vvedite ocenki: ');
for i:=1to250dobegin
readln(o);
arr[i]:=o;
end;
d:=0;
a:=0;
for a:=1to250dobegin
d:=d+(arr[a]);
end;
e:=d/250;
writeln(e:1:2);
readln
end.
SOKOLx
9.02.2007 1:19
Большое спасибо . Всё получилось =)
klem4
9.02.2007 1:27
Артемий2 Ты задание внимательно прочитал ?
SOKOLx, успел мой пост посмотреть ? Или сам сделал ?
SOKOLx
9.02.2007 19:10
Сам сделал через рандомайз )
/7popok
9.02.2007 19:26
а что если после формирования массива посчитать сначала среднее значение, потом в цикле преобразовать все элементы массива из целочисленного типа в строковый, а потом пройтись по массиву 3 раза условными операторами в поиске значений "3", "4" и "5", увеличивая значение соответствующей переменной на 1 каждый раз при обнаружении нужного значения? или я сильно перемудрил с планом написания этой программы?
мисс_граффити
9.02.2007 19:51
а что нам даст преобразование в строку? ради чего оно нужно? что значит "пройтись по массиву 3 раза условными операторами"? проходятся циклами как-то традиционно... только зачем СТОЛЬКО циклов, если все можно сделать в одном - заполнение, подсчет суммы оценок (для среднего арифметического) и подсчет кол-ва каждого вида оценок.
/7popok
9.02.2007 20:11
мисс_граффити если я не ошибаюсь, то работа со строковыми переменными занимает меньше времени, чем с целочисленными. а "пройтись по массиву 3 раза условными операторами" имелось ввиду, что в 1 цикл запихать 3 условных оператора.
volvo
9.02.2007 20:20
Цитата
то работа со строковыми переменными занимает меньше времени, чем с целочисленными
Ошибаешься. Даже если сама работа с символом будет быстрее, чем с числом, все равно с учетом времени на конвертацию общая продолжительность обработки сильно увеличится...
/7popok
9.02.2007 20:26
volvo хмм... да, а это время я не учёл... спасибо за замечание! исправлюсь!
Артемий
9.02.2007 21:08
Цитата
Артемий2 Ты задание внимательно прочитал ?
Да.я читал..Я не выкладывал все решение, я показал алгоритм нахождения средней оценки.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.