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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2018, 12:51   #1
Andrei777
 
Регистрация: 18.11.2018
Сообщений: 3
По умолчанию Найти произведение положительных чисел и определить количество чисел, принадлежащих промежутку(A,B) и стоящих на нечетных местах.

Найти произведение положительных чисел и определить количество чисел, принадлежащих промежутку(A,B) и стоящих на нечетных местах.
Вот что есть
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  Grids;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation
uses Unit2;
{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
  var
  x:array[1..10] of real;
  n,k,i:byte;
  a,b,pr:real;
  begin
    n:=StrToInt(Edit1.Text);
    a:=StrToFloat(Edit2.Text);
    b:=StrToFloat(Edit3.Text);
    StringGrid1.ColCount:=n;
    Form2.StringGrid1.ColCount:=n;
 for i:=1 to n do
       x[i]:=StrToFloat(StringGrid1.Cells[i-1,0]);
    Form2.Show;
    with Form2.StringGrid1 do
    begin
      ColCount:=n;
      for i:=1 to n do
      Cells[i-1,0]:=FloatToStr(x[i]);
    end;
    k:=0;
    i:=1;
    pr:=1;
  while i<=n do
   begin
     if x[i]>0
     then
      pr:=pr*x[i];
      i:=i+1;
   end;
   if pr=0
    then Form2.Label2.Caption:='Нет положительных элементов'
    else Form2.Label2.Caption:='Произведение положительных элементов =  '+FloatToStr(pr);
 k:=0;
 i:=1;
 while i<=n do
  begin
   if ( (i mod 2) <> 0)
   then
    begin
      k:=k+1;
    end;
   i:=i+1;
   end;
if k<0
then
  Form2.Label3.Caption:='Нет элементов пренадлежащих промежутку ('+FloatToStr(a)+','+FloatToStr(b)+')'
else
  Form2.Label3.Caption:='Кол-во элементов пренадлежащих промежутку ('+FloatToStr(a)+','+FloatToStr(b)+') k= '+IntToStr(k);

end;

end.

_____
Код программы нужно выделять (форматировать) тегами [CODE][/CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 22.11.2018 в 13:41.
Andrei777 вне форума Ответить с цитированием
Старый 22.11.2018, 13:50   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Andrei777 Посмотреть сообщение
Код:
if pr=0
    then Form2.Label2.Caption:='Нет положительных элементов'
Это условие никогда не выполнится. pr не будет равно нулю. для проверки, были ли положительные элементы нужна отдельная переменная (либо флажок, либо счётчик).


Цитата:
Сообщение от Andrei777 Посмотреть сообщение
Код:
k:=0;
 i:=1;
 while i<=n do
  begin
   if ( (i mod 2) <> 0)
   then
    begin
      k:=k+1;
    end;
   i:=i+1;
   end
Вы забыли проверить принадлежность интервалу (a,b)

Код:
 k:=0;
 i:=1;
 while i<=n do
  begin
    if ( (i mod 2) <> 0) and (x[i]>=a) and (x[i]<=b) then
	k:=k+1;
    i:=i+1;
  end;
ну и непонятно, зачем цикл while, когда у Вас просто просится цикл for i:=1 to n do
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти количество положительных чисел среди четырёх целых чисел. Если количество положительных чисел больше количества отрицательны grooveone Паскаль, Turbo Pascal, PascalABC.NET 5 17.12.2013 10:07
Найти среднее арифметическое чисел, принадлежащих промежутку [A,B) и количество положительных чисел стоящих на местах, кратных 4. Any333 Помощь студентам 2 11.12.2013 22:52
Найти среднее арифметическое чисел, принадлежащих промежутку [A,B) и количество положительных чисел, стоящих на местах, кратных 4. edgeks Помощь студентам 0 18.11.2012 15:35
Найти сумму элементов, стоящих на четных местах и произведение элементов, стоящих на нечетных местах Dark Raven Помощь студентам 2 16.03.2012 10:09