19.02.2011, 18:24 | #1 (permalink) |
Member
Регистрация: 25.12.2010
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Процедуры и функции. Паскаль
Определить площадь треугольника по трём вершинам.Треугольник задан координатами своих вершин. Нахождение длины сторон оформить в подпрограмме. Задача 2. Составить программу определения количества цифр в целом числе. |
19.02.2011, 18:24 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Люди часто создают схожие топики, советую вам почитать созданное ранее Оформить в виде процедуры. Паскаль Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл Процедуры, функции Паскаль - график функции Процедуры-подпрограммы-паскаль Процедуры-массивы |
19.02.2011, 18:50 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
VAR Xa,Ya,Xb,Yb,Xc,Yc,p,S:REAL; Function Side(x1,y1,x2,y2:REAL):REAL; begin Side:=SQRT(SQR(x1-x2)+SQR(y1-y2)); end; BEGIN Write('Xa= '); Readln(Xa); Write('Ya= '); Readln(Ya); Write('Xb= '); Readln(Xb); Write('Yb= '); Readln(Yb); Write('Xc= '); Readln(Xc); Write('Yc= '); Readln(Yc); p:=0.5*(Side(Xa,Ya,Xb,Yb)+Side(Xa,Ya,Xc,Yc)+Side(Xb,Yb,Xc,Yc)); S:=SQRT(p*(p-Side(Xa,Ya,Xb,Yb))*(p-Side(Xa,Ya,Xc,Yc))*(p-Side(Xb,Yb,Xc,Yc))); WriteLn('S=',S:10:5); ReadLn; END. Код:
VAR n:LongInt; BEGIN Write('n= '); ReadLn(n); If n=0 then WriteLn('1') else WriteLn(TRUNC(Ln(Abs(n))/Ln(10))+1); ReadLn; END. |
|
20.02.2011, 09:22 | #5 (permalink) | |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Цитата:
Итак, логарифм положительного числа по основанию 10 - величина, в которую нужно возвести 10 чтобы получить это самое число. Код:
log10(10) =1 10=10 log10(100)=2 100=10^2=10*10 log10(1000)=3 1000=100^3=10*10*10 Так как Паскаль (а точнее, математический сопроцессор) умеет считать только логарифмы по основанию e=2,7... (натуральные логарифмы), применена формула перехода к другому основанию Код:
Ln(Abs(n))/Ln(10)=log10(Abs(n)) А trunc как раз и берет ту самую целую часть от десятичного логарифма. Важные замечания: 1) Обратите внимание, что сначала берется целая часть, а затем прибавляется единица. Это очень важно, иначе программа будет врать. 2) При n=0 трюк с логарифмом работать не будет. Поэтому 0 обрабатывается отдельно. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
20.02.2011, 09:33 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Что, замечу, весьма и весьма прискорбно. Сколько раз, бывало, просят люди помочь с микропроцессорами, прошивками и т.п. - и думаешь: "Эх, где-то наш Long Cat!"... Да и СИ-шников мало.
Так что Вы уж, пожалуйста, постарайтесь (по возможности) надолго не исчезать. |
20.02.2011, 09:36 | #9 (permalink) | |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Цитата:
|
|
20.02.2011, 11:57 | #10 (permalink) | |
Banned
Регистрация: 25.01.2011
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|