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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2015, 18:45   #1
Max1097
 
Регистрация: 01.04.2015
Сообщений: 6
По умолчанию Работа с массивами (Delphi)

Всем привет!

Я готовлюсь к курсовой столкнулся с проблемой в написанной мной программе. Программа работает, но вычисляет не правильно. Пожалуйста проверьте может допустил какие-то ошибки с переменными. Заранее спасибо.

Вот мои задания (все в одной программе):
  1. Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-100,200]. Найти сумму четных элементов, значения которых больше заданного числа.
  2. Найти количество тех элементов, значения которых отрицательны и по модулю не превосходят заданного числа A.
  3. Найти номер первой пары соседних элементов с разными знаками.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    GroupBox1: TGroupBox;
    Memo1: TMemo;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Button2: TButton;
    GroupBox3: TGroupBox;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit3: TEdit;
    Button3: TButton;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    GroupBox4: TGroupBox;
    Label8: TLabel;
    Label10: TLabel;
    Edit4: TEdit;
    Button4: TButton;
    N3: TMenuItem;
    Edit5: TEdit;
    Label9: TLabel;
    Edit6: TEdit;
    Label11: TLabel;
    procedure N2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  n,i:Integer;
  Mass:array[1..100] of Integer;

implementation

{$R *.dfm}

procedure TForm1.N2Click(Sender: TObject);
begin
Form1.Close
end;

procedure TForm1.Button1Click(Sender: TObject);
var
st:String;
begin
n:=StrToInt(Edit1.Text);
st:=''; Memo1.Lines.Clear;
for i:=1 to n-1 do
  begin
  Mass[i]:=random(300)-100;
  st:=st+IntToStr(Mass[i]);
  if i<n then st:=st+', ';
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i, n, one : integer;
begin
one:=1;
n:=StrToInt(Edit5.Text);
for i := 0 to n-1 do
if (Mass[i] mod 2 = 0) and (Mass[i] > n) then
one:=one+mass[i];
Edit2.Text:= inttostr(one);
end;

procedure TForm1.Button3Click(Sender: TObject);
var
two, p, u:Integer;
begin
p:=1;
u:=StrToInt(Edit6.Text);
if (Mass[i]<0) and (-Mass[i]<=u) then
two:=two+1;
Edit3.Text:= inttostr(two);
end;

procedure TForm1.Button4Click(Sender: TObject);
var
three, p, u:Integer;
begin
p:=1;
u:=StrToInt(Edit1.Text);
if (((Mass[i]<0) and (Mass[i+1]>0)) or ((Mass[i]>0) and (Mass[i+1]<0))) and (three=0) then
three:=i+1;
i:=i+1;
Edit4.Text:= inttostr(three);
end;

procedure TForm1.N1Click(Sender: TObject);
begin
Memo1.Clear;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
end;

end.
Max1097 вне форума Ответить с цитированием
Старый 01.04.2015, 20:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Найти количество тех элементов, значения которых отрицательны и по модулю не превосходят заданного числа A.
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
two, p, u:Integer;
begin
p:=1;
u:=StrToInt(Edit6.Text);
for i:=Low(Mass) to High(Mass) do
 if (Mass[i]<0) and (abs(Mass[i])<=u) then two:=two+1;
Edit3.Text:= inttostr(two);
end;
Цитата:
Найти номер первой пары соседних элементов с разными знаками.
Код:
procedure TForm1.Button4Click(Sender: TObject);
var u:Integer;
begin
u:=StrToInt(Edit1.Text);
for i:=Low(Mass) to High(Mass)-1 do
 if (Mass[i]*Mass[i+1])<0 then begin Edit4.Text:= inttostr(i); break;end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.04.2015, 20:21   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Это точно курсовая? Надеюсь, ты не в МФТИ учишься. Готов допустить, что в Гарварде.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.04.2015, 20:26   #4
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

min@y™ нет, это не точно курсовая, так что он не учится в Гарварде((

Цитата:
Я готовлюсь к курсовой столкнулся с проблемой в написанной мной программе

ТС, а где такие изи задания дают? Я тоже хочу туда))

Да не вознакажут нас модераторы за оффтоп!)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 01.04.2015, 20:53   #5
Max1097
 
Регистрация: 01.04.2015
Сообщений: 6
По умолчанию

Stilet, спасибо
Max1097 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами [Delphi] tmx73 Помощь студентам 3 09.02.2014 08:02
Работа с массивами (Delphi) OstapS Помощь студентам 1 02.05.2012 14:44
работа с массивами в Delphi вася радугов Помощь студентам 14 05.02.2012 23:25
delphi. Работа с массивами Buka18 Помощь студентам 1 25.11.2009 16:34
Delphi,Работа с массивами iSpoke Помощь студентам 5 18.10.2009 23:41