Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Заказы "Сделайте все за меня"


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

neprogramist:

по условию мы вводим две матрицы. а в задаче вводится одна. и он почему то не заменяет у матрицы отрицательные числа на единицу.

не могли бы вы как нибудь внедрить туда вторую матрицу для выполнения условия задачи.

Нам никто не мешает обработать вторую, а если хотим, и третью и т.д. матрицы, просто запустив программу еще раз. В программу вторую матрицу внедрять совершенно ни к чему, ей там нечего делать. В одной и той же матрице можно заменять значения элементов сколько угодно раз, она не изнашивается ;) . Сейчас запуск ввода и обработки новой матрицы осуществляется просто повторным запуском программы, так, по-моему, удобнее. Но если кажется лучше программно зациклить работу программы для обработки только двух определенных матриц, это очень легко. Чтобы программа в единственном запуске требовала ввести сначала матрицу (5,6), а потом (7,8), надо строку

Write(' m=');ReadLn(m);Write(' n=');ReadLn(n);

(седьмую снизу) заменить на

m:=5; n:=6; repeat

а строку

ReadLn

(вторую снизу) на

m:=m+2; n:=n+2; until m>7; ReadLn

он почему то не заменяет у матрицы отрицательные числа на единицу.
У меня заменяет. На каком примере не заменяет?

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

По первой задаче. Текст-то может быть и с запятыми и с пробелами, а вот слова?

"аааа,бббб сссс"

- тут сколько слов? По первому определению - три, по второму - два.

P.S. Но если нужно "внедрить" в программу вторую матрицу, то могу сделать и вариант программы, в которой одновременно будут содержаться две матрицы. Текст программы изменится в основном с помощью копирования и вставки, так что долго трудиться не придется :g: . Единственное, делать что-то, в чем не видно смысла, неинтересно. Но с учебными заданиями такое бывает ;) .

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

вторую задачу я переделал и все пошло как надо... Спасибо!!!

но по поводу первой задачи я сам догнать не могу... походу предложение типа ааа, бббб имеет два слова ; а бббб,аааа одно.. вот исходя из этого и напишите мне пожалуйста программу... :g:

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

program lab7;

type t=array[1..10,1..10] of integer;

var i,j,m,n:integer; a:t;

function P(k:integer):boolean; var i:integer;

begin

if k>1 then begin P:=true; for i:=2 to trunc(sqrt(k+1)) do

if k mod i = 0 then

begin P:=false; break end end else P:=false

end;

procedure Q(m,n:integer;var a:t); var i,j,s:integer;

begin

s:=0; for i:=1 to m do if P(a[i,1]) then Inc(s);

if s>m div 2 then for i:=1 to m do for j:=1 to n do if a[i,j]<0 then a[i,j]:=1;

end;

begin

m:=5; n:=6; repeat

for i:=1 to m do

for j:=1 to n do begin Write('a[',i:2,',',j:2,']='); ReadLn(a[i,j]) end;

Q(m,n,a);

for i:=1 to m do begin for j:=1 to n do Write(a[i,j]:7);

WriteLn

end;

m:=m+2; n:=n+2; until m>7; readln

end.

я все по поводу задачи с матрицами... можно ли зделать так чтобы программа запрашивала ввести сразу две матрицы а потом только выдавала ответ?

причем в ответе она отображала и старые матрицы(введенные) и новые(получившиеся). а если меньше половины строк начинается с простого числа то вывести сообщение об этом (типа меньше половины строк начинается с простого числа !!!) Исправте пожалуйста :rolleyes:

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

Огромное спасибо Тролль за сделанную задачу :rolleyes:

Помоги пожалуста с модульным програмированием там немного посложнее

Вот задание

Даны векторы A[10], B[18]. У каждого вектора, компоненты которого не образуют неубывающей последовательности, отрицательные компоненты заменить максимальным элементом.

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

neprogramist:

я все по поводу задачи с матрицами... можно ли зделать так чтобы программа запрашивала ввести сразу две матрицы а потом только выдавала ответ?

причем в ответе она отображала и старые матрицы(введенные) и новые(получившиеся). а если меньше половины строк начинается с простого числа то вывести сообщение об этом (типа меньше половины строк начинается с простого числа !!!)

Уф... И еще изложила бы общую теорию бесконечных автоматов в четырех рифмованных строчках :rolleyes: (пример взял у Лема).

Имей в виду, в последний раз пишу ;) По-моему, тебе скоро понадобится штатный программист...

Пишется программа все-таки заметно дольше, чем обычный текст.

uses crt;type t=array[1..10,1..10] of integer;var b,c:t;function P(k:integer):boolean; var i:integer;begin   if k>1 then begin P:=true; for i:=2 to trunc(sqrt(k+1)) do  if k mod i = 0 then begin P:=false; break end end else P:=false  end;procedure Q(m,n:integer;var a:t); var i,j,s:integer;begin s:=0; for i:=1 to m do if P(a[i,1]) then Inc(s); if s>m div 2 then begin for i:=1 to m do for j:=1 to n do if a[i,j]<0 then a[i,j]:=1;WriteLn('The matrix ',m:1,'x',n:1,' is changed!') endend;procedure Input(m,n:integer;var a:t); var i,j:integer; begin for i:=1 to m dofor j:=1 to n do begin Write('a[',i:2,',',j:2,']='); ReadLn(a[i,j]) end;end; procedure Output(m,n:integer;var a:t); var i,j:integer; begin for i:=1 to m do begin for j:=1 to n do Write(a[i,j]:7); WriteLn end;end;begin textmode(259);WriteLn('Matrix 5x6 - input'); Input(5,6,b); WriteLn;WriteLn('Matrix 7x8 - input'); Input(7,8,c); WriteLn;ClrScr;WriteLn('Old matrix 5x6 - output'); Output(5,6,b); WriteLn;WriteLn('Old matrix 7x8 - output'); Output(7,8,c); WriteLn;Q(5,6,b); Q(7,8,c); WriteLn;WriteLn('New matrix 5x6 - output'); Output(5,6,b); WriteLn;WriteLn('New matrix 7x8 - output'); Output(7,8,c); WriteLn;ReadLnend.

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

походу предложение типа ааа, бббб имеет два слова ; а бббб,аааа одно.. вот исходя из этого и напишите мне пожалуйста программу...
Без волшебного слова точно бы уже не взялся... ;)

То есть запятая перед пробелом считается обычным знаком препинания, вместе с пробелом разделяющей слова. ОК.

var a,s,z:string; p:set of char; i,j,k,l,q:integer; f:boolean;begink:=0;s:='';z:=''; WriteLn('Text=');ReadLn(a);WriteLn; a:=a+' ';for i:=1 to length(a) doif a[i]<>' ' then k:=k+1 else { end of the word }  beginif a[i-1]=',' then q:=i-2 else q:=i-1;f:=true; p:=[]; for j:=i-k to q do  begin if a[j] in p then f:=false; Include(p,a[j]) end;if f then begin for j:= i-k to i do s:=s+a[j];  if length(z)=0 then begin for j:=i-k to q do if a[j]in['0'..'9'] 	then z:=z+a[j] else begin z:='';break end end end;k:=0;  end;WriteLn(s);if length(z)<>0 then z:=z+'0';WriteLn('10x number: ',z);ReadLnend.

Trueman:

Это из той же оперы, что у neprogramist'а ? Ты случайно не у того же преподавателя учишься?

Опять нельзя обрабатывать последовательно, а надо параллельно? Напоминает мне историю о человеке, у которого кошка ходила гулять через дыру в заборе, а когда у нее родились котята, он проделал для них в заборе дополнительные дыры, рядом с дырой для кошки...

Та же логика. И даже задание очень похоже, только не матрицы, а векторы, и вместо проверки на простоту чисел проверка на ненеубывание... :bye1: :D

type t=array[1..20] of real;var b,c:t;function P(n:integer; a:t):boolean; var i:integer;  begin P:=false;for i:=2 to n do if a[i]<a[i-1] then begin P:=true;break end end;procedure Q(n:integer; var a:t); var i:integer;m:real; begin if P(n,a) then begin m:=a[1]; for i:=2 to n do if a[i]>m then m:=a[i];for i:=1 to n do if a[i]<0 then a[i]:=m end end;procedure Input(n:integer; var a:t); var i:integer;  begin   for i:=1 to n do begin Write('a[',i:2,']='); ReadLn(a[i]) end end; procedure Output(n:integer; var a:t); var i:integer;  begin for i:=1 to n do Write(a[i]:10:3); WriteLn end;begin WriteLn('Vector10 - input'); Input(10,b); WriteLn('Vector18 - input'); Input(18,c);WriteLn;WriteLn('Old vector10 - output'); Output(10,b);WriteLn('Old vector18 - output'); Output(18,c);Q(10,b); Q(18,c); WriteLn('New vector10 - output'); Output(10,b);WriteLn('New vector18 - output'); Output(18,c);ReadLnend.
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Привет всем я был бы очень признателен если бы вы уважаемые постояльцы этого форума помогли в решении следующей задачи

Pascal

Даны массивы Х[15], Z[20,15]

15 2 15

получить: ∑ X B ∑ Z[i,j],i=1 to 20

i-1 i-1

вычисльть: ∑ (b-3)

i

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

Все сесместр кончаеться :blush2: и последняя задача которую я попрошу сделать это задача про строки

вот задание:

Общая постановка задачи для всех вариантов :blush2:

Задан текст, состоящий из слов, записанных через пробелы или запятые.

Длина текста не больше 255 символов. В тексте могут быть использованы

любые символы. Словом считать последовательность символов, не содержащую пробел.

Необходимо введенный текст вывести на экран до и после его преобразования.

И собствеенно мой вариант :blush2:

16. Сформировать новую строку из слов, состоящих

только из латинских букв, и длиной не более 7 литер.

Все строчные буквы в новой строке заменить на заглавные.

Найти первое цифровое слово и найти сумму его цифр.

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

Trueman:

Пункт задания "Найти первое цифровое слово и сумму его цифр в строке, состоящей из латинских букв" я проигнорировал.

Бессмысленно искать в Сахаре снег.

var a,s:string; i,j,k,q:integer; f:boolean;begink:=0;s:=''; WriteLn('Text=');ReadLn(a);WriteLn(a);WriteLn; a:=a+' ';for i:=1 to length(a) doif a[i]<>' ' then k:=k+1 else begin if a[i-1]=',' then q:=i-2 else q:=i-1; if q-(i-k)<7 then begin  f:=true; for j:=i-k to q do if not (a[j]in['A'..'Z','a'..'z']) then f:=false; if f then begin for j:=i-k to q do s:=s+upcase(a[j]);    for j:=q+1 to i do s:=s+a[j]; end; k:=0; end end;WriteLn(s); ReadLnend.
Ссылка на комментарий
Поделиться на другие сайты

Люди, прошу кто может помогите с написанием программ на С++.

13. Даны целое n>2 и вещественные числа a1, b1, . . . , an, bn (ai < bi ). Рассматривая пары ai и bi, как левые и правые концы отрезков на одной и той же прямой, определить концы отрезка, являющегося перечислением всех этих отрезков. Если такого отрезка нет, то сообщить об этом.

14.Составить программу нахождения наименьшего натурального N–значного числа Х (Х>=10), равного утроенному произведению своих цифр.

15.Составить программу, которая описывает массив записей жильцов дома, отображая в нем следующую информацию о каждом: номер квартиры, фамилия, имя, возраст, для лиц старше 18 в зависимости от рода занятий (учеба, работа, пенсия) – запись с места учебы, места работы и трудового стажа, для пенсионеров – год выхода на пенсию. Программа должна обеспечить ввод данных, поиск квартиры с максимальным числом жильцов, поиск самого юного и самого пожилого жильца, поиск студентов, пенсионеров.

16.Даны квадратные матрицы А и В порядка n. Получить матрицу А(В-Е)+С, где Е – единичная матрица порядка n, а элементы матрицы С вычисляются по формуле Сij=1/(i+j), i,j=1,2,…,n.

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

Очень нужны программ:

1.Переставить слова в тексте так, чтобы они были упорядочены по длине.

2.Вводится непустая строка из строчных русских букв, заканчивающаяся точкой. Отдельные слова в ней разделены запятыми. Вывести на печать в алфавитном порядке все согласные, которые не входят ни в одно слово.

В паскале вообще никак не понимаю, поэтому если можно то всю прогу от "А" до "Я"

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

Derty:

1.Переставить слова в тексте так, чтобы они были упорядочены по длине.

var t,s:string; i,k,b,l:integer;

begin

t:=t+' '; s:=''; ReadLn(t);

repeat

k:=0; l:=0; b:=0;

for i:=1 to Length(t) do

if t>='0' then k:=k+1

else if k<>0 then begin if l<k then begin l:=k; b:=i-k end; k:=0 end;

s:=s+copy(t,b,l)+' ';delete(t,b,l);

until l=0;

WriteLn(s); ReadLn

end.

2.Вводится непустая строка из строчных русских букв, заканчивающаяся точкой. Отдельные слова в ней разделены запятыми. Вывести на печать в алфавитном порядке все согласные, которые не входят ни в одно слово.

var i:integer; j:char; s:string; q:set of char;

begin

q:=['б'..'з','к'..'н','п'..'т','ф'..'щ']; ReadLn(s); for i:=1 to length(s) do exclude(q,s);

for j:='б' to 'щ' do if j in q then Write(j); WriteLn; Readln

end.

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

Оень нужны программы:

1)Вводится непустая строка из строчных русских букв, заканчивающаяся точкой. Отдельные слова в ней разделены запятыми. Вывести на печать в алфавитном порядке : все звонкие согласные,которые входят в каждое нечетное слово и не входят хотя бы в одно четное.

2)Выделить из текста и вывести последовательности слов с одинаковыми длинами.

Паскаль - это полный ужос(((поэтому желательно полностью))

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

Gift:

1)Вводится непустая строка из строчных русских букв, заканчивающаяся точкой. Отдельные слова в ней разделены запятыми. Вывести на печать в алфавитном порядке : все звонкие согласные,которые входят в каждое нечетное слово и не входят хотя бы в одно четное.

var t,g:set of char; c:char; s:string; k:boolean; i:byte;

begin

k:=true; t:=[]; g:=['б'..'д','ж','з','л'..'н','р']; ReadLn(s);

for i:=1 to length(s) do

if s>'.' then include(t,s) else

begin if k then g:=g*t else g:=g-t; t:=[]; k:=not k end;

for c:='б' to 'р' do if c in g then Write(c ); WriteLn; ReadLn

end.

2)Выделить из текста и вывести последовательности слов с одинаковыми длинами.

var t,s:string; i,j,k,m:integer;

begin

ReadLn(t); k:=0; t:=t+' '; s:='';

for i:=1 to length(t) do

if t>='0' then inc(k)

else if k<>0 then begin if k<>m then s:=copy(t,i-k,k) else

begin if length(s)<>0 then WriteLn; Write(s+' '+copy(t,i-k,k));s:='' end;

m:=k; k:=0 end;

WriteLn; WriteLn; ReadLn

end.

Паскаль - это полный ужос
Паскаль - очень простой и ясный язык из нескольких десятков слов. Дело не в Паскале, а в приемах программирования, алгоритмизации, а этому вас не учат. Программа пишется переводом с русского на Паскаль, и этот перевод делать очень легко. Трудно составить, хотя бы в уме, описание решения на русском языке.

Я бы сказал так: программа пишется на русском, а записывается на Паскале.

P.S. Как всегда, автозамена кое-каких сочетаний символов в сообщении на служебные знаки подводит, пришлось немного изменить запись.

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

Спс огромное!!

з.ы. Паскаль сложный ппц по крайней мере для меня)а то бэйсик учил , а перевестись с него на паскаль , или что ещё хуже фортран 77, для мнея трудно очень.

З.З.Ы. Ещё раз Спс!)

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

Здрасьте. Помогите пожалуйста. Вот задали мне следущее:

1. для заданной матрицы B размера 5*5 найти такие k, для которых k строка матрицы совпадает с k столбцом

2. Дана матрица 3*4. Составить програму для просчёта колличества чётных элементов в каждой строке матрицы

n

3.Соитавить подпрограмму для определения расстояния между точками А и В в n-мерном пространстве по формуле α=√(∑(ai-bi)^2 )

i=1

где ai, bi, -координаты точек A и B. Используя её найти минимальное из расстояений между точками X, Y, Z

Здрасьте. Помогите пожалуйста. Вот задали мне следущее:

1. для заданной матрицы B размера 5*5 найти такие k, для которых k строка матрицы совпадает с k столбцом

2. Дана матрица 3*4. Составить програму для просчёта колличества чётных элементов в каждой строке матрицы

3.Соитавить подпрограмму для определения расстояния между точками А и В в n-мерном пространстве по формуле

____n

α=√(∑(ai-bi)^2 )

____i=1

где ai, bi, -координаты точек A и B. Используя её найти минимальное из расстояений между точками X, Y, Z

ps ссорри за дубль не нашёл где редактировать

Здрасьте. Помогите пожалуйста. Вот задали мне следущее:

1. для заданной матрицы B размера 5*5 найти такие k, для которых k строка матрицы совпадает с k столбцом

2. Дана матрица 3*4. Составить програму для просчёта колличества чётных элементов в каждой строке матрицы

n

3.Соитавить подпрограмму для определения расстояния между точками А и В в n-мерном пространстве по формуле α=√(∑(ai-bi)^2 )

i=1

где ai, bi, -координаты точек A и B. Используя её найти минимальное из расстояений между точками X, Y, Z

Здрасьте. Помогите пожалуйста. Вот задали мне следущее:

1. для заданной матрицы B размера 5*5 найти такие k, для которых k строка матрицы совпадает с k столбцом

2. Дана матрица 3*4. Составить програму для просчёта колличества чётных элементов в каждой строке матрицы

3.Соитавить подпрограмму для определения расстояния между точками А и В в n-мерном пространстве по формуле

____n

α=√(∑(ai-bi)^2 )

____i=1

где ai, bi, -координаты точек A и B. Используя её найти минимальное из расстояений между точками X, Y, Z

Здрасьте. Помогите пожалуйста. Вот задали мне следущее:

1. для заданной матрицы B размера 5*5 найти такие k, для которых k строка матрицы совпадает с k столбцом

2. Дана матрица 3*4. Составить програму для просчёта колличества чётных элементов в каждой строке матрицы

3.Соитавить подпрограмму для определения расстояния между точками А и В в n-мерном пространстве по формуле

____n

α=√(∑(ai-bi)^2 )

____i=1

где ai, bi, -координаты точек A и B. Используя её найти минимальное из расстояений между точками X, Y, Z

ps ссорри за дубль не нашёл где редактировать нет оооочень сильно глючит

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

Тролль,могу тебя попросить помочь?Я бы и сам сделал,но не доходит((Помощь нужна...

Очень прошу,у меня днюха сегодня))будет приятный подарок,плиз)

Вообщем ситуация такая:

У меня для зачета нужны 9 заданий по Delphi. 7 я написал.Там относительно легкие аля вычисление производной,интеграла и т.д.А вот последние 2 задания не идут((

8 задание

На плоскости даны точка r0 и два вектора A и B.

а) Построить изображение точечного множества, определяемого равенством r = r0+'alpha' x A+'betta' * B, где 0<='alpha'<='betta'<=1.

б) Для произвольного вектора r написать алгоритм проверки принадлежности к указанному множеству.

в) Вычислить коэффициенты уравнения биссектрисы угла с вершиной в r0 и сторонами, параллельными A и B.

'alpha' и 'betta' соответственно греческие буквы) x - умножить))на всякий случай сказал

9 задание

Написать программу обращения матрицы, порядок которой заранее не задан, использующую динамическую память.

ЗЫ:Тока обязательно на Delphi,очень прошу

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

Ну и если можнопомогите доделать прогу на Паскале,это не нужно для зачета,я для себя пишу))Но если нетрудно и не жалко помогите.

Вообщем я написал программу для расчета траектории полета сеаряда.Вводится начальная скорость,угол наклона и количество точек траектории,которые программа будет искать(N)...Дык вот если N=1 то возникает аварийная ситуация деления на ноль,так как dt(временной шаг)=T/(N-1);

Я это устранил путем введения условия if N=1 then exit;

Хотелось бы,чтобы при этом выводилась надпись вроде 'Please enter more points.Press <enter> for exit'.Но никак не получается,он либо ее не выводит,либо выводит но не распознает else и т.д.Помогите встроить эту малую часть кода в мою прогу.Вот собсно код:

{$N+}

program gun;

uses Crt;

var

v0,alpha,t,

dt,x,y,x0,y0,

vx0,vy0,tc:Extended;

N,i :Integer;

const

g=9.81;

begin

ClrScr;

WriteLn('Please enter begin speed');

ReadLn(v0);

WriteLn;

WriteLn('Please enter pitch of trajectory');

ReadLn(alpha);

WriteLn;

WriteLn('Please enter number of points');

ReadLn(N);

if N<=1 then exit;

vx0:=v0*Cos(alpha);

vy0:=v0*Sin(alpha);

x0:=0;

y0:=0;

T:=2*vy0/g;

dt:=T/(N-1);

i:=1;

tc:=0;

while i<=N do

begin

x:=x0+vx0*tc;

y:=y0+vy0*tc-g*Sqr(tc)/2;

WriteLn(x,y);

Inc(i);

tc:=tc+dt;

if i mod 20=0 then

begin

WriteLn('Press <enter> please');

ReadLn;

end;

end;

WriteLn('Press <enter> please');

ReadLn;

end.

Заранее благодарю

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

666TEHb666:

Интересно, зачем тебе понадобилась точность Extended :) Это попадание в глаз мухи, сидящей на Луне...

И выводить результаты лучше в нормальной форме, вроде WriteLn(x:9:1,y:9:1);

Кроме того, ввод угла стрельбы (по артиллерийски, возвышения) в радианах выглядит несколько непривычно для артиллеристов :) , лучше задавать его в градусах и переводить затем в радианы в программе.

А с выходом с сообщением нет никаких проблем:

if N<=1 then

begin

WriteLn;

WriteLn('Please enter more points...');

WriteLn('Press <enter> for exit');

ReadLn;

exit;

end;

Можно, конечно, сделать без exit с if ... begin ... end else begin ... end;

но зачем вводить лишний уровень begin ... end, ведь использование exit, как ты и сделал, гораздо удобнее :)

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

666TEHb666:

Интересно, зачем тебе понадобилась точность Extended :) Это попадание в глаз мухи, сидящей на Луне...

И выводить результаты лучше в нормальной форме, вроде WriteLn(x:9:1,y:9:1);

...

Можно, конечно, сделать без exit с if ... begin ... end else begin ... end;

но зачем вводить лишний уровень begin ... end, ведь использование exit, как ты и сделал, гораздо удобнее :)

Гыг)))а я уже тута сам все сообразил))Я где то сделал глупую ошибку и усе))Но все равно спс за консультацию))Ток я придумал с мессагом поинтереснее,я тама while цикл использовал воть))Приведу измененный код:

{$N+}

program gun;

uses Crt;

var

v0,alpha,t,

dt,x,y,x0,y0,

vx0,vy0,tc:Extended;

N,i :Integer;

const

g=9.81;

begin

ClrScr;

WriteLn('Please enter begin speed');

ReadLn(v0);

WriteLn;

WriteLn('Please enter pitch of trajectory');

ReadLn(alpha);

WriteLn;

WriteLn('Please enter number of points');

ReadLn(N);

while N<=1 do

begin

WriteLn('Please enter more points');

WriteLn('Please enter number of points');

ReadLn(N);

end;

vx0:=v0*Cos(alpha);

vy0:=v0*Sin(alpha);

x0:=0;

y0:=0;

T:=2*vy0/g;

dt:=T/(N-1);

i:=1;

tc:=0;

while i<=N do

begin

x:=x0+vx0*tc;

y:=y0+vy0*tc-g*Sqr(tc)/2;

WriteLn(x,y);

Inc(i);

tc:=tc+dt;

if i mod 20=0 then

begin

WriteLn('Press <enter> please');

ReadLn;

end;

end;

WriteLn('Press <enter> please');

ReadLn;

end.

А разве я угол ввожу не в градусах???Процессор ведь считает произведение на косинус(синус) угла В ГРАДУСАХ,а не в радианах...С физическими расчетами у меня не всегда гуд,малость не доходит((

И касаемо результатов,а может просто их округлять...?

А с делфи не поможешь?Очень надо просто,а то не получить мне зачета((придется с Паскалем заканчивать и в спешке осваивать делфи без хорошей базы алгоритмических построений((а времени нет((

Я тут есчо одну программу пишу))вводятся координаты 3 точек,енто вершины треугольника.Вводится еще одна точка с координатами.Определяться будет находиться эта точка внутри,снаружи или на границе треугольника))Но пока ток пишу алгоритм.нуно как я понимаю,чтобы данная точка лежала по одну сторону с каждой третьей вершиной треугольника относительно прямой(уравнение будет находиться) между двумя другими точками.

ЗЫ:И кстати очень плохо,что здесь нельзя редактировать сообщения((Забудешь чтонибудь сказать нуно новое сообщение катать,а его есчо и за флуд могут посчитать((

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

666TEHb666:

Процессор ведь считает произведение на косинус(синус) угла В ГРАДУСАХ,а не в радианах...
Никогда. В градусах считают только в школьной тригонометрии и в артиллерии :) Вся математика всегда идет в радианах (этому есть обоснование, не буду приводить). Можешь проверить: при угле, скажем, 2, пушка начнет обстреливать свои тылы :)
как я понимаю,чтобы данная точка лежала по одну сторону с каждой третьей вершиной треугольника относительно прямой(уравнение будет находиться) между двумя другими точками.
Я бы стрелял по площадям :)

Если новую точку соединить со старыми, получим три новых треугольника. Если сумма их площадей больше площади старого треугольника, точка - вне, если равна - внутри или на стороне, при этом если она на стороне, то площадь одного треугольника равна нулю, если в вершине, то даже двух. Для расчета площади треугольника по длинам его сторон есть очень простая формула Герона, ее можно оформить в виде функции (как и нахождение длины стороны).

кстати очень плохо,что здесь нельзя редактировать сообщения((Забудешь чтонибудь сказать нуно новое сообщение катать,а его есчо и за флуд могут посчитать((
были прецеденты, из-за которых для новичков отменили возможность редактирования. Но следующий пост, если с ним долго не тянуть, автоматически объединится с первым.

P.S. С проверкой на равенство надо быть осторожным. Из-за погрешности расчетов точного равенства может не быть. В таких случаях проверяют, что абсолютная ведичина разности лежит в пределах возможной погрешности (скажем, одна миллионная от суммы площадей). Это - подводные камни вычислительной математики, в которой приходится учитывать возможные погрешности вычислений.

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

Никогда. В градусах считают только в школьной тригонометрии и в артиллерии :) Вся математика всегда идет в радианах (этому есть обоснование, не буду приводить). Можешь проверить: при угле, скажем, 2, пушка начнет обстреливать свои тылы :)

Учту обязательно,но пока поработаю с градусами,со временем перейду на более точные вычисления)

Я бы стрелял по площадям ;)

Ну ... прикольно xD

Просто мне пока советовали вот с прямыми работать.Во-первых проще реализовать,во-вторых точность расчетов выше

были прецеденты, из-за которых для новичков отменили возможность редактирования. Но следующий пост, если с ним долго не тянуть, автоматически объединится с первым.

Уже заметил)))Но вот какие нибудь опечатки это не исправит,приходиться забивать((

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...