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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2011, 17:48   #1
zzzarazzza
Пользователь
 
Регистрация: 04.11.2010
Сообщений: 19
Восклицание Delphi массивы

Задача: Найти сумму модулей элементов массива, расположенных после первого элемента, равного нулю.


какую сделать обработку чтобы когда в массиве нет нулевых элементов выводилось сообщение об ошибке

Код:
var s, y: integer;
begin
  s := 0;
  for j := 0 to StringGrid1.ColCount - 1 do
    if strtoint(StringGrid1.Cells[j, 0]) = 0 then
    begin
      y := j;
    end;
  begin
    for j := y + 1 to StringGrid1.ColCount - 1 do
      s := s + abs(strtoint(stringgrid1.Cells[j, 0]));
    Label6.Caption := inttostr(s);
  end;
end;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 30.06.2011 в 20:20.
zzzarazzza вне форума Ответить с цитированием
Старый 30.06.2011, 18:05   #2
zzzarazzza
Пользователь
 
Регистрация: 04.11.2010
Сообщений: 19
Восклицание

а вот как делать эту задачу вообще не знаю..(( надеюсь на вашу помошь

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

_____________________
одна тема - один вопрос. Для нового вопроса лучше создайте новую тему.
(только дайте ей ПОЛНОЕ нормальное адекватное название)

Модератор.

Последний раз редактировалось Serge_Bliznykov; 30.06.2011 в 20:18.
zzzarazzza вне форума Ответить с цитированием
Старый 30.06.2011, 18:51   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

В принципе, я готов вам помочь, не не бесплатно....
Я так полагаю, вам надо написать на Делфи? EXE-шник будет стоить 100 рублей...
особенно хорошо, если во второй задаче можно использовать дополнительный массив

Таким образом, 2 задачи в делфи = 200 рублей на счёт мобильного телефона.......
Вадим Мошев вне форума Ответить с цитированием
Старый 30.06.2011, 19:16   #4
zzzarazzza
Пользователь
 
Регистрация: 04.11.2010
Сообщений: 19
Восклицание

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
В принципе, я готов вам помочь, не не бесплатно....
Я так полагаю, вам надо написать на Делфи? EXE-шник будет стоить 100 рублей...
особенно хорошо, если во второй задаче можно использовать дополнительный массив

Таким образом, 2 задачи в делфи = 200 рублей на счёт мобильного телефона.......
нет спасибо, я надеюсь на бесплатную помощь...
zzzarazzza вне форума Ответить с цитированием
Старый 30.06.2011, 20:25   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
какую сделать обработку чтобы когда в массиве нет нулевых элементов выводилось сообщение об ошибке
дык, элементарно.

если Вы писали сами этот код, то Вы понимаете, для чего используется переменная y

только у Вас в коде ошибочка - вы найдёте индекс последнего нуля, а Вам надо - первого..

можно так:
Код:
var s, y: integer;
begin
  y := -1; {-1 признак того, что нулевой элемент не найден}
  for j := 0 to StringGrid1.ColCount - 1 do
    if strtoint(StringGrid1.Cells[j, 0]) = 0 then
    begin
      y := j;
      break; {прерываем цикл - первый нулевой элемент найден!}
    end;

  if y = -1 then ShowMessage('Ошибка! В массиве нулевой элемент вообще отсутствует!')
  else begin
    s := 0;
    for j := y + 1 to StringGrid1.ColCount - 1 do
      s := s + abs(strtoint(stringgrid1.Cells[j, 0]));
    Label6.Caption := inttostr(s);
  end;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.06.2011, 21:43   #6
zzzarazzza
Пользователь
 
Регистрация: 04.11.2010
Сообщений: 19
Восклицание

да код писала сама))
поэтому сток ошибок...(

спасибо огромное, а можно по второй задачке помочь?
хотя бы как условие там написать...
zzzarazzza вне форума Ответить с цитированием
Старый 30.06.2011, 22:26   #7
Kotlyar562
Пользователь
 
Аватар для Kotlyar562
 
Регистрация: 03.02.2010
Сообщений: 46
По умолчанию

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const n=5;
var a, b : array[1..n] of real;
    i,k: integer;
begin
  for i:=1 to n do readln(a[i]);

  k:=1;
  for i:=1 to n do
    if i mod 2 =0 then
    begin
      b[k]:=a[i];
      k:=k+1;
    end;
  for i:=1 to n do
    if i mod 2 =1 then
    begin
      b[k]:=a[i];
      k:=k+1;
    end;

  for i:=1 to n do write(b[i]:0:0,' ');
  readln;
end.

Проходим массив первый раз и записываем во второй массив элементы, стоящие на парных местах, потом проходим массив еще раз и дописываем ко второму массиву элементы, стоящие на непарных местах.
Kotlyar562 вне форума Ответить с цитированием
Старый 30.06.2011, 23:58   #8
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Поясняю: парных = чётных
непарных = нечётных.
Kotlyar562 вы с Украины?
Вадим Мошев вне форума Ответить с цитированием
Старый 01.07.2011, 01:17   #9
Kotlyar562
Пользователь
 
Аватар для Kotlyar562
 
Регистрация: 03.02.2010
Сообщений: 46
Смех

Да, недоглядел
спасибо
Kotlyar562 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
delphi-массивы RsGoLd Помощь студентам 7 10.12.2010 18:24
Delphi(массивы) Mishqa Помощь студентам 3 18.04.2010 13:41
Delphi - массивы dForm Помощь студентам 2 30.11.2009 17:57
Delphi. Массивы. HD-boy Помощь студентам 5 27.11.2009 17:00