Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.05.2013, 08:18
shonchakay shonchakay вне форума
Прохожий
 
Регистрация: 25.05.2013
Сообщения: 3
Версия Delphi: delphi7
Репутация: 10
По умолчанию помогите с массивом

у меня должен быть одномерный массив, выводящее произведение четных элементов массива, но она показывает другие цифры [code][/
спам

Код:
unit Unit1;

interface

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

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

var
MyForm: TMyForm;

implementation

{$R *.dfm}

procedure TMyForm.Button1Click(Sender: TObject);
var a: array [1..5] of integer ;

var i, p,n, k:integer;

begin
for i:=1 to 5 do
begin
a :=random (11)+1;
end;
p:=1;
k:=5 div 2;
for p:=1 to k do
n:= p* a[i*2];
if p<>0 then
Edit1.Text := FloatToStr(n);

end;

procedure TMyForm.Button2Click(Sender: TObject);
begin
self.Close;
end;

end.

Последний раз редактировалось M.A.D.M.A.N., 28.05.2013 в 08:47.
Ответить с цитированием
  #2  
Старый 28.05.2013, 08:36
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вообще работать не должно

Заполнение массива
Код:
for i := 1 to 5 do a[i]:= random (11) + 1;
дальше
Код:
n:= p* a[i*2];
i в этот момент равно 5, умножить на 2 будет 10, такой ячейки в массиве нет - вызовет AV
Ответить с цитированием
  #3  
Старый 28.05.2013, 10:45
shonchakay shonchakay вне форума
Прохожий
 
Регистрация: 25.05.2013
Сообщения: 3
Версия Delphi: delphi7
Репутация: 10
По умолчанию

в ответе выходят цифры 17564312 такого плана, а на самом деле же должен быть: 2*4*6*8=3840, вообщем перестановка не помогает
Ответить с цитированием
  #4  
Старый 28.05.2013, 10:48
shonchakay shonchakay вне форума
Прохожий
 
Регистрация: 25.05.2013
Сообщения: 3
Версия Delphi: delphi7
Репутация: 10
Сообщение исходник

вот исходник
Вложения
Тип файла: rar массив.rar (3.1 Кбайт, 0 просмотров)
Ответить с цитированием
  #5  
Старый 28.05.2013, 20:50
SubbSer SubbSer вне форума
Прохожий
 
Регистрация: 28.05.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Не программа, а бред!

1) Не верный синтаксис
for i:=1 to 5 do
begin
a :=random (11)+1;
end;
нужно:
for i:=1 to 5 do
begin
a[i] :=random (11)+1;
end;
При таком коде а может принимать как четные значения так и не четные!!
Для чего Вы пишите Рандом +1 не ясно.
2) k:=5 div 2; зачем это выражение??? Оно всегда равно 2. Проще тогда написать k:=2.
3) Таким образом цикл выполниться всего два раза для p:=1 и для p:=2
for p:=1 to k do
n:= p* a[i*2];
n примет значения:
n:=1*(любое число до 11 плюс 1)
n:=2*(любое число до 11 плюс 1)
Ну например может получится n:=5 b n:=24
4) Вывода на экран вынесен за цикл!!
if p<>0 then
Edit1.Text := FloatToStr(n);
Данные строки, в виду того что вынесены за цикл, выведут всего одно лишь значение n, а именно последнее посчитаное. Для моих примеров n:=24.
5) if p<>0 then
Что это вообще за строка?? p всегда больше нуля, значит данное вырожение автоматический всегда ТРУ. Его вообще можно выкинуть.

Прежде чем что-то писать необходимо самому разобраться, что должна делать программа. тогда и написание станет простым.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:54.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter