Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
SOKOLx
Помогите плз с задачейЮ оч нужно =)
Вася Иванов получил за год 250 оценок по алгебре. Определите сколько среди них пятёрок, четверок и троек. НАйти среднюю оценку за год по алгебре.
Заранее пасибо)
Артемий
Данные оценок хранятся в массиве?Пользователь руками оценки вводит?
SOKOLx
я хз я вообщеначинающий в паскале, нам в таком виде задачу продиктовали)
volvo
Что не получается?

Опиши массив
var
grades: array[1 .. 5] of integer;
, при вводе очередной оценки (назовем ее X) просто напросто увеличивать arr[X] на единицу... Тогда в конце процесса у тебя в arr[i] будет храниться число оценок равных i...

Где проблема?
SOKOLx
Цитата(Артемий2 @ 8.02.2007 20:23) *

Данные оценок хранятся в массиве?Пользователь руками оценки вводит?

нет ничего вводить ненадо)
Артемий
Тогда описывай как константу:

const
a: array [1..250] of Integer = ({Тут твои данные об оценках...});
SOKOLx
Я школьник =) мы пока константы непроходили только начали массивы sad.gif
Артемий
Ну а где тогда, раз не вводится руками, они хранятся?Ты не ответил на этот вопрос! blink.gif
SOKOLx
Цитата(Артемий2 @ 8.02.2007 20:55) *

Ну а где тогда, раз не вводится руками, они хранятся?Ты не ответил на этот вопрос! blink.gif

хм... blink.gif

Добавлено через 4 мин.
тогда наверное надо всё таки вводить)
Артемий
Тогда заполняй и вычисляй среднее..
program Project1;
var
arr: array [1..250] of Integer;
var
i,d,a,o: Integer;
e: real;
begin
writeln('Vvedite ocenki: ');
for i:=1 to 250 do
begin
readln(o);
arr[i]:=o;
end;
d:=0;
a:=0;
for a:=1 to 250 do begin
d:=d+(arr[a]);
end;
e:=d/250;
writeln(e:1:2);
readln
end.

SOKOLx
Большое спасибо . Всё получилось =)
klem4
Артемий2 Ты задание внимательно прочитал ?

SOKOLx, успел мой пост посмотреть ? Или сам сделал ?
SOKOLx
Сам сделал через рандомайз )
/7popok
а что если после формирования массива посчитать сначала среднее значение, потом в цикле преобразовать все элементы массива из целочисленного типа в строковый, а потом пройтись по массиву 3 раза условными операторами в поиске значений "3", "4" и "5", увеличивая значение соответствующей переменной на 1 каждый раз при обнаружении нужного значения?
или я сильно перемудрил с планом написания этой программы?
мисс_граффити
а что нам даст преобразование в строку?
ради чего оно нужно?
что значит "пройтись по массиву 3 раза условными операторами"? проходятся циклами как-то традиционно... только зачем СТОЛЬКО циклов, если все можно сделать в одном - заполнение, подсчет суммы оценок (для среднего арифметического) и подсчет кол-ва каждого вида оценок.
/7popok
мисс_граффити
если я не ошибаюсь, то работа со строковыми переменными занимает меньше времени, чем с целочисленными.
а "пройтись по массиву 3 раза условными операторами" имелось ввиду, что в 1 цикл запихать 3 условных оператора.
volvo
Цитата
то работа со строковыми переменными занимает меньше времени, чем с целочисленными
no1.gif Ошибаешься. Даже если сама работа с символом будет быстрее, чем с числом, все равно с учетом времени на конвертацию общая продолжительность обработки сильно увеличится...
/7popok
volvo
хмм... да, а это время я не учёл...
спасибо за замечание! исправлюсь! yes2.gif
Артемий
Цитата
Артемий2 Ты задание внимательно прочитал ?

Да.я читал..Я не выкладывал все решение, я показал алгоритм нахождения средней оценки.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.