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

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


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

Опубликовано

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

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

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

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

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

Опубликовано

А в формуле нет опечатки?

П(x-k*n), где k = 0, 1, 2...

Опубликовано (изменено)

Росляев, написал на 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
Опубликовано

4543, это для лабораторных по программированию :help:

Опубликовано
4543, это для лабораторных по программированию :help:

Давай еще, нам то же попрактиковаться полезно :lol:

Опубликовано

Пожалуйста:

Дана квадратная вещественная матрица размерности 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, что именно непонятно? Вроде программа очень простая.

Изменено пользователем Paddington
Опубликовано
4543, что именно непонятно? Вроде программа очень простая.

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

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

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



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