|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
15.02.2012, 22:57 | #1 (permalink) |
Новичок
Регистрация: 15.02.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите решить три задачи в Free Pascal
Даны произвольные числа a,b,c. Выяснить существует ли треугольник с такими длинами сторон. Если треугольник существует, то ответить является ли он равносторонним, равнобедренным или каким либо иным. Характеристикой строки целочисленной матрицы назовем сумму ее отрицательных нечетных элементов. Определить номер строки с наименьшей характеристикой. Даны действительные числа x, ε (x не равно 0, ε>0). Вычислить с точностью ε (ε=10-3,10-4,10-5,10-6) сумму ряда и указать количество учтенных слагаемых. Результаты оформить в виде таблицы: (подробнее во вложении) |
15.02.2012, 22:57 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Советую вам прочесть аналогичные темы, наверняка вы найдете там что то важное Пожалуйста, помогите с программой. Free Pascal Помогите решить задачу в Free Pascal Помогите решить задачу в Free Pascal |
15.02.2012, 23:19 | #2 (permalink) |
Новичок
Регистрация: 15.02.2012
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Первую решил. Надо ещё хотя бы одну задачу сделать
var a,b,c:real; t:string; begin writeln('vvedite storony treugolnika',a,b,c); readln (a,b,c); if (a+b<c) or (b+c<a) or (a+c<b) then t:='treugolnik ne suwestvuet' else t:='treugolnik suwestvuet'; if (a=b) or (b=c) or (a=c) then t:='treugolnik ravnobedrennyy'; if ((a=b) and (b=c)) then t:='treugolnik ravnostoronnyy'; if (a*a=b*b+c*c) or (b*b=a*a+c*c) or (c*c=a*a+b*b) then t:='treugolnik pryamougolnyy'; writeln(t); readln() end. |
16.02.2012, 10:51 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
В принципе - правильно, но есть несколько замечаний.
Лучше бы убрать переменную t вовсе, а просто в условных операторах выдавать сообщения. То есть так: Код:
var a,b,c:real; begin writeln('vvedite storony treugolnika',a,b,c); readln (a,b,c); if (a+b<=c) or (b+c<=a) or (a+c<=b) then writeln('treugolnik ne suwestvuet') else writeln('treugolnik suwestvuet'); if ((a=b) and (b=c)) then writeln('treugolnik ravnostoronnyy') else if (a=b) or (b=c) or (a=c) then writeln('treugolnik ravnobedrennyy'); if (a*a=b*b+c*c) or (b*b=a*a+c*c) or (c*c=a*a+b*b) then writeln('treugolnik pryamougolnyy'); readln end. Кроме того, в проверке существования корректнее дать нестрогие неравенства. Ну в самом деле, если сумма двух сторон равна третьей, то что это за треугольник? И последнее. В операторе останова readln перед заключительным end скобки можно не ставить. Не ошибка, можно и так, как у Вас, но не нужно. |
16.02.2012, 11:45 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
CONST Eps:Array[1..4] of Real=(0.001,0.0001,0.00001,0.000001); VAR Sum,x:Real; N:Word; i:Integer; PROCEDURE SUMS(Es:Real; Var S:Real; Var Ns:Word); VAR a:Real; Begin S:=0; Ns:=0; Repeat Inc(Ns); a:=x/Ns/(Sqr(Ns)+Sqrt(Abs(x)+1)); S:=S+a; Until (Abs(a)<Es) or (Ns=10); End; BEGIN Write('x= '); ReadLn(x); WriteLn; WriteLn(' Results of calculation:'); WriteLn(' X Eps SUM N'); WriteLn; For i:=1 to 4 do begin SUMS(Eps[i],Sum,N); WriteLn(x:8:5,' ',Eps[i]:8:6,' ',SUM:7:5,' ',N:3); end; ReadLn; END. Естественно, в программе счет начинается с единицы. |
|
01.05.2012, 21:59 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Alex-jane, Ваш запрос перенесен в отдельную тему http://www.tehnari.ru/f41/t72547/. Эта ТЕМА ЗАКРЫТА.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|