Перейти к содержанию

Дано натуральное число n.


Росляев

Рекомендуемые сообщения

Помогите, пожалуйста, написать программу на Free Pascal.

1. Дано натуральное число n и действительное число х. Вычислить:

x( x - n )( x - 2 n )( x - 3 n )…( x – n^2);

2. По формуле задания №1 для действительного x>0 определить значение n

для произведений, дающих в итоге значение больше 1000.

Ссылка на комментарий
Поделиться на другие сайты

Росляев, написал на Delphi 7

 

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
 private
{ Private declarations }
 public
{ Public declarations }
 end;

var
 Form1: TForm1;
 a,N,xxl,x:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin // Задание #1
x:=StrToInt(Edit2.text);
N:=StrToInt(Edit1.Text);
a:=1;
xxl:=x; // По сих момент должно быть понятно.
while (N>=a) do // начинаем цикл что бы опеределить количество множителей.
begin
xxl:=xxl*(x-a*N); // Умножаме и вычисляем множители
a:=a+1; // Считаем количесво повторений цикла и множитель для N
end;
Label1.Caption:= IntToStr(xxl);
// Задание №2. Убираем последюю строчку кода(Label1.Caption:= IntToStr(xxl);)
if (X>0) and (xxl>1000) then // В операторе ветвления то же непонятного мало =)
ShowMessage(IntToStr(xxl))
else ShowMessage('Выввели значение X<0  или результат не превышает 1000. Ответ не может быть получен!')
end;
end.

 

основная рабочая часть кода:

 

begin // Задание #1
x:=StrToInt(Edit2.text);
N:=StrToInt(Edit1.Text);
a:=1;
xxl:=x; // По сих момент должно быть понятно.
while (N>=a) do // начинаем цикл что бы опеределить количество множителей.
begin
xxl:=xxl*(x-a*N); // Умножаме и вычисляем множители
a:=a+1; // Считаем количесво повторений цикла и множитель для N
end;
Label1.Caption:= IntToStr(xxl);
// Задание №2. Убираем последюю строчку кода(Label1.Caption:= IntToStr(xxl);)
if (X>0) and (xxl>1000) then // В операторе ветвления то же непонятного мало =)
ShowMessage(IntToStr(xxl))
else ShowMessage('Выввели значение X<0  или результат не превышает 1000. Ответ не может быть получен!')
end;

 

 

В Паскаль сам переделаешь :)

заданияexe.rar

Изменено пользователем 4543
  • Согласен 1
Ссылка на комментарий
Поделиться на другие сайты

Вот переделал по Паскаль первую программу.

Program Lab4;
Uses CRT;
Var a,N,xxl,x:integer;
Begin
Write('x='); readln(x);
Write('n='); readln(N);
a:=1;
xxl:=x;
while(N>=a) do
begin
xxl:=xxl*(x-a*N);
a:=a+1;
end;
Writeln('Ответ=',xxl);
ReadLn();
End.

Может что-то неправильно.

Ссылка на комментарий
Поделиться на другие сайты

Вот мой вариант.Первая программа:

Program Lab1;
var n,i:integer;
x,s:real;
begin
WriteLn('Введите x');
readln(x);
writeln('Введите n');
readln(n);
s:=x;
for i:=1 to n do
s:=s*(x-i*n);
WriteLn('Ответ: ', s:8:3);
ReadLn();
end.

Вторая программа:

Program Lab2;
var n,i:integer;
x,s:real;
begin
WriteLn('Введите x');
readln(x);
repeat
 inc(n);
 s:=x;
 for i:=1 to n do
s:=s*(x-i*n);
until s>=1000;
Write('n=', n);
ReadLn();
end.

  • Согласен 1
Ссылка на комментарий
Поделиться на другие сайты

Росляев, а тебе это зачем нужно?

давай еще задания, мы тебе все сделаем)

 

P.S. Условие второй програмы чесно говоря не понял, ну ладно, тут еще умные люди вроде бы сделали :)

Изменено пользователем 4543
Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста:

Дана квадратная вещественная матрица размерности n. Найти количество

отрицательных элементов, стоящих: выше главной диагонали; ниже главной диагонали.

Ссылка на комментарий
Поделиться на другие сайты

Росляев, это задача для 4543?Код:

Program R;
Const n=3;
Var a:array[1..n,1..n] of real;
i,j:byte;
pod,nad:integer;

begin
randomize;
pod:=0;
nad:=0;
for i:=1 to n do
 begin
for j:=1 to n do
  begin
	a[i,j]:=random(10000)-5000+random;
	Write(' ', a[i,j]:9:3);
	if a[i,j]<0 then
	  if not(i=j) then
		if i<j then inc(nad)
		else inc(pod);
  end;
WriteLn;
 end;
WriteLn('Количество отрицательных элементов над главной диагональю: ', nad);
WriteLn('Количество отрицательных элементов под главной диагональю: ', pod);
end.

Ссылка на комментарий
Поделиться на другие сайты

Росляев, это задача для 4543?Код:

Program R;
Const n=3;
Var a:array[1..n,1..n] of real;
i,j:byte;
pod,nad:integer;

begin
randomize;
pod:=0;
nad:=0;
for i:=1 to n do
 begin
for j:=1 to n do
  begin
	a[i,j]:=random(10000)-5000+random;
	Write(' ', a[i,j]:9:3);
	if a[i,j]<0 then
	  if not(i=j) then
		if i<j then inc(nad)
		else inc(pod);
  end;
WriteLn;
 end;
WriteLn('Количество отрицательных элементов над главной диагональю: ', nad);
WriteLn('Количество отрицательных элементов под главной диагональю: ', pod);
end.

А можешь дать подробные коментарии и объяснить принцип действия....

Ссылка на комментарий
Поделиться на другие сайты

4543, что именно непонятно? Вроде программа очень простая.

Можешь объяснить сначала основной принцип действия, а потом коментарии в коде?

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...