Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
tatonok
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 1
1

задача на тему одномерных массивов

09.11.2012, 12:21. Просмотров 529. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста,никак не могу найти ошибку в задаче! Условие задачи : Заполнить одномерный массив размера N так, чтобы каждый элемент с четным индексом был равен половине своего номера, а каждый элемент с нечетным индексом — 0.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2;
 
type
  TForm1 = class(TForm)
    edt1: TEdit;
    btn1: TButton;
    edt2: TEdit;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.btn1Click(Sender: TObject);
begin
  Edt2.Text := Process(Edt1.Text);
end;
 
end.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
unit Unit2;
 
interface
 
function Process(Text:string):string;
 
implementation
 
uses SysUtils;
 
function Process(Text:string):string;
var i, i2,n :Integer;
    a : array of Integer;
begin
  {Г‡Г*ïîëГ*ГїГҐГІ Г¬Г*Г±Г±ГЁГў ГЁГ§ ÅäèòГ*}
  SetLength(a,10);
  i := 1;
  i2 := 1;
 
  while i <= Length(Text) do
    begin
      while Text[i] = ' ' do i:= i+1;
      a[i2] := StrToInt(Text[i]);
      i:=i+1;
      if Text[i] = ' ' then
        begin
          i2 := i2+1;
          SetLength(a,Length(a)+1);
          i := i+1;
        end;
    end;
 
    {ГЋГЎГ°Г*ГЎГ*òûâГ*ГҐГІ Г¬Г*Г±ГЁГў}
    i := 1;
    while i <= Length(a) do
    begin
      if (i mod 2=0) then
      begin
        a[i] := i div 2;
        i:=i+1;
      end;
 
      if (i mod 2 <> 0) then
      begin
        a[i] := 0;
        i:=i+1;
      end;
    end;
 
      for i := 1 to Length(a) do
        Result := Result + IntToStr(a[i]);
end;
end.
0
Вложения
Тип файла: rar 19массивВ.rar (164.1 Кб, 4 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2012, 12:21
Ответы с готовыми решениями:

Задача способы ввода одномерных массивов с компонентами: TEdit, TMemo
Здравствуйте. СПасибо за те решения. Помоги и с этой задачей. Вообще не...

Задача: "Программирование одномерных статических массивов"
Исправить код программы или дополнить. Ввести элементы одномерного массива...

5. Обработка одномерных массивов
Составить программу для решения задачи. Вывести положительные элементы массива...

Вычитание одномерных массивов
Даны два массива B и C одинаковой размерности.Заполнить массив A,каждый элемент...

Обработка одномерных массивов
помогите пожалуйста) в делфи используя компонент Memo и ListBox Дан...

2
WoodHead
102 / 101 / 29
Регистрация: 15.01.2011
Сообщений: 476
09.11.2012, 13:24 2
tatonok, вы уж простите, но на мой взгляд этот код - одна сплошная ошибка.
Вот мой вариант:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program ArrayProject;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
  System.SysUtils;
var
  Arr: Array[1..10] of Real; // объявляем массив
  i: byte;                      // переменная для счетчика
begin
  for i := 1 to High(Arr) do    // цикл перебора данных
  begin
  // если деление номера элемента массива на 2 выполняется без остатка
  // то элементу массива присваиваем его номер, в противном случае ставим 0
    if i mod 2 = 0
      then Arr[i]:=i/2
      else Arr[i]:=0;
    writeln(Round(Arr[i])); // печатаем результат
  end;
  readln;           // задержка вывода на экран
end.
1
Nutserus
210 / 169 / 24
Регистрация: 24.04.2012
Сообщений: 608
09.11.2012, 13:30 3
А какое отношение этот код имеет к заданию?
По заданию делать так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
const
  n=100;
var
  i:integer;
  a:array[1..n]of integer;
begin
  for i:=1 to n do
    if not odd(i) then
      a[i]:=i div 2
    else
      a[i]:=0;
end;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2012, 13:30

Обработка одномерных массивов
Составить перечень значений элементов одномерного целочисленного массива

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

Сортировка одномерных массивов
Отсортируйте в массиве четные элементы по возрастанию. Напишите пожалуйста...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru