Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2008, 19:21   #1
Toxass
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 62
По умолчанию Подскажите что не так в программе?

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
   
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


Procedure TForm1.Button1Click(Sender: TObject);
Const n =10;
var C:array[1..n] of integer;
F:array[1..n] of integer;
i,j,summa:integer;
srednee:real;
begin
summa:=0;
for i:=1 to n do
begin
memo1.Lines.add('Vvedite '+inttostr(i)+' element');

C[i]:=strtoint(edit1.Text); //???

summa:=summa+C[i];
end;
srednee:=(summa/n);
j:=1;
for i:=1 to n do
if C[i]>srednee then
begin
F[j]:=C[i];
j:=j+1;
end;
for i:=1 to j-1 do
memo1.Lines.Add(inttostr(F[i]));
end;
End.
Toxass вне форума Ответить с цитированием
Старый 18.12.2008, 19:59   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Так а что надо?

У тебя получается, что ты суммируешь значение которое написано в Edit1. Вычисляешь среднее всех считанных чисел(а оно у тебя все тот же Edit1.Text). Затем ты проверяшь если твоё считанное больше срднего. На данный момент это условие всегда ложно, т.к. если ты просуммировал 10 раз значение 10, то среднее будет равно 10, а 10 не больше 10.
Hollander вне форума Ответить с цитированием
Старый 18.12.2008, 20:13   #3
Toxass
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Hollander Посмотреть сообщение
Так а что надо?

У тебя получается, что ты суммируешь значение которое написано в Edit1. Вычисляешь среднее всех считанных чисел(а оно у тебя все тот же Edit1.Text). Затем ты проверяшь если твоё считанное больше срднего. На данный момент это условие всегда ложно, т.к. если ты просуммировал 10 раз значение 10, то среднее будет равно 10, а 10 не больше 10.
а поп опдробней, что это все значит или можете ли исправить программу чтобы она работала?
Toxass вне форума Ответить с цитированием
Старый 18.12.2008, 20:22   #4
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

Цитата:
Сообщение от Toxass Посмотреть сообщение
а поп опдробней, что это все значит или можете ли исправить программу чтобы она работала?
Здесь что Телепаты ? - Вы задачу напишите!!!! ( которую, якобы, должна решать данная программа)
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 18.12.2008, 21:06   #5
Toxass
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 62
По умолчанию

Вот задание: Написать программу обработки одномерного массива. Составить схему алгоритма. Из массива С(Н) переписать в массив Ф(И) элементы больше среднего значения массива С(Н).
Toxass вне форума Ответить с цитированием
Старый 19.12.2008, 17:30   #6
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

У тебя все правильно написано, за исключением того, что массив Ф(И) ты всегда заполняешь одним и тем же числом. Из-за этого уренда у тебя получается.
Вот строка:
Код:
C[i]:=strtoint(edit1.Text); //???
Измени на
Код:
C[i]:=Random(100);
Только сейчас ты не вводишь числа вручную, а они генерируются случайным образом.
Hollander вне форума Ответить с цитированием
Старый 19.12.2008, 17:33   #7
Toxass
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 62
По умолчанию

Цитата:
Сообщение от Hollander Посмотреть сообщение
У тебя все правильно написано, за исключением того, что массив Ф(И) ты всегда заполняешь одним и тем же числом. Из-за этого уренда у тебя получается.
Вот строка:
Код:
C[i]:=strtoint(edit1.Text); //???
Измени на
Код:
C[i]:=Random(100);
Только сейчас ты не вводишь числа вручную, а они генерируются случайным образом.
а как сделать так, чтобы числа можно было вводить с клавиатуры? ?
Toxass вне форума Ответить с цитированием
Старый 19.12.2008, 18:06   #8
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

У тебя не консольное приложение, поэтому нужно крутиться. Можешь создать форму на которой будет edit и показыай её в цикле,а потом забирай, что ввел юзер.
Можно тупой вариант, если тебе нужно только 10 значений, то сделай 10 edit'ов и забирай оттуда. Но это очень плохо.
Hollander вне форума Ответить с цитированием
Старый 19.12.2008, 18:10   #9
Toxass
Пользователь
 
Регистрация: 12.11.2008
Сообщений: 62
По умолчанию

не понял))))
Toxass вне форума Ответить с цитированием
Старый 20.12.2008, 10:11   #10
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Код:
  C[i] := strtointDef(InputBox('Формирование массива', 'Введите '+inttostr(i)+' элемент', ''),0);
s.Creator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что то не так с переменными.. adwaer Помощь студентам 1 19.06.2008 08:42
Подскажите, где в программе ошибка gamer123 Паскаль, Turbo Pascal, PascalABC.NET 3 25.02.2008 03:09
Что в коде не так? Simply-Art Общие вопросы Delphi 3 08.07.2007 19:32
Подскажите что тут не так!? dcl Общие вопросы Delphi 5 28.03.2007 08:15
Что-то не так Radiofuck Помощь студентам 2 16.01.2007 22:06