IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
Closed Topic Открыть новую тему 
> Помогите с задачками
K0ndER
сообщение 16.09.2007 19:04
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


1. Даны числа а,b,с,d,e,f. Напечатать координаты точки пересечения прямых, описываемых уравнениями a*х+b*y=c и d*х+e*y=f, либо сообщить, что эти прямые совпадают, не пересекаются или вовсе не существуют.

2. Дана функция x=a*sin(k*t+2)*cos(k*t). Составить алгоритм для расчета этой функции, если а изменяется от 5 до 7 с шагом 0.12, t изменяется от 4.2 до 6.2 с шагом 0.17 а k=1,2,3,...,12.

3. Найти среднее геометрическое положительных элементов каждого столбца матрицы А(10,15).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 16.09.2007 19:19
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


М
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...


2. Что не получается?
Свои мысли и попытки решить - в студию.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
LexaKazanskij
сообщение 16.09.2007 20:09
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Алексий

Репутация: -  0  +


Вопрос по поводу третьего (как найти среднее геометрическое) :
Надо каждое положительное перемножить и из этого вычислить корень степени количества положительных? wacko.gif

 ! 
тему переименуй, иначе она будет закрыта



Сообщение отредактировано: klem4 - 16.09.2007 20:41
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
LexaKazanskij
сообщение 16.09.2007 21:21
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Алексий

Репутация: -  0  +


Я не понял: это я создал тему? blink.gif

М
виноват, обращение к автору темы smile.gif



Сообщение отредактировано: klem4 - 16.09.2007 21:33
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
LexaKazanskij
сообщение 16.09.2007 21:56
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: Алексий

Репутация: -  0  +


Бывает lol.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
K0ndER
сообщение 21.09.2007 18:01
Сообщение #6





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Правильно я решил?

 {Даны числа а1,b1,с1,а2,b2,с2. Напечатать координаты точки пересечения прямых, описываемых уравнениями a1*х+b1*y=c1 и a2*х+b2*y=c2, либо сообщить, что эти прямые совпадают, не пересекаются или вовсе не существуют.}

Program Intersection;
Uses Crt;
Var a1, b1, c1, {коэффициенты уравнения первой прямой}
a2, b2, c2, {коэффициенты уравнения второй прямой}
x, y : Real; {координаты точки пересечения }
Test, NTest : Integer;
BEGIN
ClrScr; {очистка экрана}
Write('Введите количество тестов : ');
ReadLn(NTest);
For Test := 1 to NTest do {цикл по всем тестам задачи}
begin
Write('Тест ', Test, '. Введите a1, b1, c1 : ');
ReadLn( a1, b1, c1);
Write(' Введите a2, b2, c2 : ');
ReadLn( a2, b2, c2);
WriteLn; Write('О т в е т : ');
If ( (a1=0) and (b1=0) ) or ( (a2=0) and (b2=0) )
then WriteLn( 'это не прямая (прямые). ' )
else
if (a1*b2=a2*b1) and (a1*c2=a2*c1) {условие совпадения}
then WriteLn( 'прямые совпадают.' )
else
if a1*b2 = a2*b1 {условие параллельности}
then WriteLn('прямые параллельны.')
else begin x:=(c1*b2-c2*b1)/(b1*a2-b2*a1);
y:=(c2*a1-c1*a2)/(b1*a2-b2*a1);
WriteLn('координаты точки пересечения :',
' x = ', x : 5 : 2 , ', y = ', y : 5 : 2);
end; WriteLn
end;
ReadLn
END.


Сообщение отредактировано: K0ndER - 21.09.2007 18:04
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.09.2007 18:10
Сообщение #7


Гость






Даже если сам алгоритм и правильный, возникает вопрос: а ты уверен, что сравнение вещественных чисел через "=" даст тебе правильный результат? Я вот не уверен...

Сообщение отредактировано: volvo - 21.09.2007 18:10
 К началу страницы 
+ Ответить 
K0ndER
сообщение 21.09.2007 19:27
Сообщение #8





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Ну а как правильно по Вашему?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.09.2007 19:33
Сообщение #9


Гость






Правильно - сравнивать вещественные числа с некоторой точностью... Если бы ты соизволил посмотреть на форуме хотя бы несколько тем, посвященных работе с Real/Double, увидел бы, что не так советуют делать:

var a, b: real;
...
if a = b then ...


а вот так:

var a, b: real;
const epsilon = 0.0001;
...
if abs(a - b) < epsilon then ...
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.07.2025 17:36
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"