![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
В университете учил Delphi, но уже всё забыл.
Дело в том, что нужно сделать программку, которая принимает числа (заранее кол-во чисел неизвестно), потом вычисляет из них среднее арифметическое. Примерное условие: Ученик получает оценки. Вводим все оценки по очереди и выводим средний балл. Представил форму, как на рисунке. Кнопки "О программе.." и "Выход" сделал. А вот как быть с циклом и массивом? Я уже не помню. Помогите, пожалуйста.. |
|
#2
|
|||
|
|||
|
Можно:
1) Создать статический массив например длиною в 100 позиций и в цикле прогонять 2) Создать динамический массив и каждый раз у пользователя спрашивать о числе вводимых оценок 3) Самый опитмальный: использовать Борландовскую структуру TStrings. Добавлять в нее строку командой Add и затем в цикле от 0 до Count-1 считывать и суммировать Также можно в окно ввода вводить сразу все оценки через какой-нибудь зарезервированный символ, например, запятая и в цикле анализировать уже строку |
|
#3
|
|||
|
|||
|
А с кодом не можешь помочь?
Там чё-то коротенькое должно быть, минимальное.. Хотя бы как цикл написать.. |
|
#4
|
|||
|
|||
|
Код:
var
sum : integer;
stl : TStrings;
begin
stl := TStrings.Create;
//nen добавлене значений в stl
for i := 0 to high(stl) do
Sum := sum + StrToInt(stl);
sum := Round(sum / stl.count)Как то так) Последний раз редактировалось Alexo, 26.10.2008 в 17:12. |
|
#5
|
|||
|
|||
|
Это если одну строку обрабатывать?
П.С. А как написать, чтобы цикл выполнялся до нажатия Батона2? |
|
#6
|
|||
|
|||
|
Это если весь обьект TStrings, а там может быть куча строк.
ввести булевую переменную и при каждом проходе цикла проверять, а по нажатию кнопки изменять значение переменной. Код:
if bStop then break; application.processmessages; |
|
#7
|
|||
|
|||
|
Посмотри на форму и прочитай..
При нажатии "Ещё" будет очищаться поле ввода и цифра заносится в массив. Когда будет введена последняя цифра, то пользователь нажимает "Средний бал" и Label.Caption присвается среднее значение. |
|
#8
|
|||
|
|||
|
Цитата:
цикл я написал, как останавливать его по нажатию кнопки тоже написал. На форме кстати ненаписанно что делает кнопка еще. вводить по одной цифре удобно наверное если их пара штук проще сделать разделитель и парсить строку. Последний раз редактировалось Alexo, 26.10.2008 в 15:50. |
|
#9
|
|||
|
|||
|
Парсить? Бррррррррррррр.. Я в этом чайник.. Всё что пока у меня выходит -
Код:
procedure TForm1.Button1Click(Sender: TObject); // "Ещё" begin // какой-то цикл должен быть!!! ---------- sum:=a+a; a:=StrToInt(Edit1.Text); Edit1.Text:=''; // а тут он должен заканчиваться!!! ---------- end; procedure TForm1.Button2Click(Sender: TObject); // "Средний балл" begin sr:=sum/i; Label2.Caption:=FloatToStr(sr); end; |
|
#10
|
|||
|
|||
|
ты даже не пытался сделать то что тебе сдесь написали
в твоем случае только stl надо сделать глобальной. |
|
#11
|
|||
|
|||
|
Цитата:
Цитата:
|
|
#12
|
|||
|
|||
|
Код:
var
...
stl : TStrings;
procedure TForm1.Button1Click(Sender: TObject); // "Ещё"
begin
stl.Add(Edit1.text);
Edit1.Text:='';
end;
procedure TForm1.Button2Click(Sender: TObject); // "Средний балл"
var
sr : real;
i : integer;
begin
for i := 0 to stl.Count - 1 do
sr := sr + StrToInt(stl.string[i]);
sr := sr / stl.Count;
Label2.Caption:=FloatToStr(sr);
end;в Formcreate написать stl := TStrings.Create; в formdestroy stl.free; |
|
#13
|
|||
|
|||
|
Цитата:
Это я правильно понял? Код:
procedure TForm1.FormCreate(Sender: TObject); begin stl := TStrings.Create; end; procedure TForm1.FormDestroy(Sender: TObject); begin stl.free; end; Если правильно, то Код:
sr:=sr+StrToInt(stl.string[i]); [Error] Unit1.pas(59): Identifier expected but 'STRING' found [Warning] Unit1.pas(66): Constructing instance of 'TStrings' containing abstract method 'TStrings.Clear' [Fatal Error] Srednii_ball.dpr(5): Could not compile used unit 'Unit1.pas' ![]() |
|
#14
|
|||
|
|||
|
исправь на Strings
|
|
#15
|
|||
|
|||
|
Приложение запускается..
![]() Но не работает ![]() Скинь асю в личку.. |