IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Математика, Кто чем поможет в Паскале
DeMoN 911
сообщение 6.5.2007, 17:26
Сообщение #1


Студент
**

Группа: Продвинутые
Сообщений: 145
Регистрация: 15.3.2007
Из: Ростов-на-Дону
Город: Ростов-на-Дону
Учебное заведение: ФВТ
Вы: школьник



Подскажите, как правильно написать программу:
Условие: Найдите кол-во целых чисел, лежащих в интервале -100<=n<=100, при которых дробь
(n^2-5n+6)/(2n-1) является целым числом.

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ботаник
сообщение 7.5.2007, 7:06
Сообщение #2


Аспирант
***

Группа: Активисты
Сообщений: 414
Регистрация: 1.3.2007
Город: Люберцы
Вы: другое



Выкладывайте свою программу, а мы постараемся поправить ошибки. Вы ведь уже что-то написали? Да?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DeMoN 911
сообщение 9.5.2007, 17:41
Сообщение #3


Студент
**

Группа: Продвинутые
Сообщений: 145
Регистрация: 15.3.2007
Из: Ростов-на-Дону
Город: Ростов-на-Дону
Учебное заведение: ФВТ
Вы: школьник



У меня получилась такая тема:

program cel;
const n=100;
var
n1,i:integer;
y:real;
y1:integer;
begin
randomize;
n1:=-100+random(201);
y:=(n1*n1-5*n1+60)/(2*n1-1); y1:=0;
for i:=-100 to n do
if y mod 2 = 0 then y1:=y1+1;
readln
end.

Че-то у меня комп не выдает правильность строки if y mod 2 = 0 then y1:=y1+1. Буду рад узнать почему.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
A_nn
сообщение 9.5.2007, 18:05
Сообщение #4


Ассистент
****

Группа: Преподаватели
Сообщений: 720
Регистрация: 26.2.2007
Город: СПб
Вы: преподаватель



Что-то я не поняла ничего... Зачем randomize? И почему у Вас в цикле ничего не вычисляется?
Я, вообще-то, давно программированием не занималась. Может, там что-то изменилось за последнее время...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ботаник
сообщение 9.5.2007, 20:06
Сообщение #5


Аспирант
***

Группа: Активисты
Сообщений: 414
Регистрация: 1.3.2007
Город: Люберцы
Вы: другое



Потому и не поняли, что понимать нечего. Просто набор операторов.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ботаник
сообщение 10.5.2007, 4:31
Сообщение #6


Аспирант
***

Группа: Активисты
Сообщений: 414
Регистрация: 1.3.2007
Город: Люберцы
Вы: другое



Вот алгоритм. На Паскаль самостоятельно перепишите. Требуемых чисел моя программа нашла 8.

Sub main()
Dim k As Integer, j As Integer, n As Integer
Dim y As Single

k = 0
For n = -100 To 100
y = (n * n - 5 * n + 6) / (2 * n - 1)
j = y
If (j = y) Then k = k + 1
Next n
Debug.Print "k="; k
End Sub
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DeMoN 911
сообщение 10.5.2007, 15:29
Сообщение #7


Студент
**

Группа: Продвинутые
Сообщений: 145
Регистрация: 15.3.2007
Из: Ростов-на-Дону
Город: Ростов-на-Дону
Учебное заведение: ФВТ
Вы: школьник



Программа должна выглядеть так:

program cel;
var
k,n:integer;
j:integer;
y:real;
begin
for n:=-100 to 100 do
k:=0;
y:=(n*n-5*n+6)/(2*n-1);
j:=y;
if (j:=y) then k:=k+1;
readln(n);
writeln('Количество целых чисел=',k);
readln
end.

Я прав ?!?



Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
A_nn
сообщение 10.5.2007, 17:10
Сообщение #8


Ассистент
****

Группа: Преподаватели
Сообщений: 720
Регистрация: 26.2.2007
Город: СПб
Вы: преподаватель



Цитата
if (j:=y)

По-моему, тут двоеточие не надо (это же не присваивание). И тело цикла должно же быть как-то ограничено (где начало, где конец).
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ботаник
сообщение 10.5.2007, 18:14
Сообщение #9


Аспирант
***

Группа: Активисты
Сообщений: 414
Регистрация: 1.3.2007
Город: Люберцы
Вы: другое



Не прав. Я удалил Паскаль со своего компьютера и не могу проверить, но думаю эта программа, если и будет работать, то всегда будет выдавать ноль. Если подождёшь пару дней, я попробую найти у себя Паскаль и скину тебе работающую программу.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ботаник
сообщение 11.5.2007, 4:37
Сообщение #10


Аспирант
***

Группа: Активисты
Сообщений: 414
Регистрация: 1.3.2007
Город: Люберцы
Вы: другое



Program main;
Var
k, n : Integer;
y : real;
Begin
k := 0;
For n := -100 To 100 do
Begin
y := (n * n - 5 * n + 6) / (2 * n - 1);
If (Int(y) = y) Then k := k + 1;
End;
WriteLn('k=',k);
End.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DeMoN 911
сообщение 11.5.2007, 17:49
Сообщение #11


Студент
**

Группа: Продвинутые
Сообщений: 145
Регистрация: 15.3.2007
Из: Ростов-на-Дону
Город: Ростов-на-Дону
Учебное заведение: ФВТ
Вы: школьник



Всем огромное спасибо за помощь! (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/biggrin.gif)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
AlexDemche
сообщение 12.5.2007, 19:25
Сообщение #12


Студент
**

Группа: Продвинутые
Сообщений: 83
Регистрация: 18.3.2007
Город: Казань
Учебное заведение: Казанский Государственный Университет
Вы: преподаватель



Предлагаю более эффективный алгоритм сложности O(1):

Код

Program main;
Begin
WriteLn('k=8');
End.


Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 27.4.2024, 15:30

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru