Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 22.11.2018, 13:51   #1
Andrei777
 
Регистрация: 18.11.2018
Сообщений: 3
Репутация: 10
По умолчанию Найти произведение положительных чисел и определить количество чисел, принадлежащих промежутку(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 в 14:41.
Andrei777 вне форума   Ответить с цитированием
Старый 22.11.2018, 14:50   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,450
Репутация: 5596
По умолчанию

Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти количество положительных чисел среди четырёх целых чисел. Если количество положительных чисел больше количества отрицательны grooveone Паскаль 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


20:25.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru