Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 23.12.2009, 22:43   #1 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию Помогите с прогами в Паскале

9.8. Дано матрицу А размером 6х6. Заменить в матрице элементы главной диагонали нулями.

10.8. Дано стороны двух треугольников: a, b, c и d, e, f.
Найти, на сколько площадь одного треугольника больше второй.
Площадь треугольника ABC со сторонами A, B, C исчисляется по
формулой Герона
s = r (r-a) (r-b) (r-c)
где R - пивпериметр треугольника ABC. Вычисление площади треугольников оформить в виде процедуры.

6.8. Дан одномерный массив P, состоящий из 16 элементов. Найти номера тех элементов, модуль которых равна заданному числу А. Число А ввести с клавиатуры.

Помогите решить эти 3 задачи в Паскале)
Оч нужно!!!
Спасибо.
JCHacker вне форума   Ответить с цитированием

Старый 23.12.2009, 22:43
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Тут может содержаться интересующая вас информация

Помогите решить задачу на Паскале
Помогите с задачей в Паскале

Старый 23.12.2009, 23:09   #2 (permalink)
DDS
Member
 
Регистрация: 15.02.2009
Сообщений: 695
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 523
По умолчанию

Задание 9.8
Код:
const n=6;
var a:array[1..n,1..n]of byte;
      i,j:byte;
begin
Randomize;
for i:=1 to n do
  for j:=1 to n do
   a[i,j]:=random(10);
for i:=1 to n do
  a[i,i]:=0;
for i:=1 to n do 
   begin
      for j:=1 to n do
      write(a[i,j],' '); 
      writeln;
   end;
readln;
end.
DDS вне форума   Ответить с цитированием
Старый 23.12.2009, 23:19   #3 (permalink)
DDS
Member
 
Регистрация: 15.02.2009
Сообщений: 695
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 523
По умолчанию

Задание 6.8
Код:
const n=10;
var p:array[1..n]of byte;
     i,a:byte;
begin
 Randomize;
 for i:=1 to n do
    p[i]:=random(10);
 for i:=1 to n do
    write(p[i],' ');
 writeln;
 write('a= '); readln(a);
 for i:=1 to n do
     if p[i]=a then writeln(i);
 readln;
end.
DDS вне форума   Ответить с цитированием
Старый 23.12.2009, 23:38   #4 (permalink)
DDS
Member
 
Регистрация: 15.02.2009
Сообщений: 695
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 523
По умолчанию

Задание 10.8
Код:
var a,b,c,d,e,f:byte;
     s1,s2,s_otn:real;
procedure geron(a,b,c:byte;var s1:real);
  var p:real;
  begin
    p:=(a+b+c)/2;
    s1:=sqrt(p*(p-a)*(p-b)*(p-c));
  end;
begin
 write('Введите a b c '); readln(a,b,c);
 write('Введите d e f '); readln(d,e,f);
 geron(a,b,c,s1);
 geron(d,e,f,s2);
 s_otn:=s1/s2;
 writeln('Площадь 1 треугольника ',s1:5:2);
 writeln('Площадь 2 треугольника ',s2:5:2);
 writeln('Отношение площадей ',s_otn:5:2);
 readln;
end.
Я не стал делать проверку существования треугольника, так что при проверке вводите числа такие, чтобы треугольники существовали.
DDS вне форума   Ответить с цитированием
Старый 24.12.2009, 10:25   #5 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,874
Сказал(а) спасибо: 318
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Уважаемый DDS, я позволил себе внести некоторую правку в Ваши программы, уж извините. Во-первых, если Вы используете генератор случайных чисел, то не забывайте в начале программы его инициализировать, т.е. написать команду Randomize. Во-вторых, ну что у Вас за пристрастие к CRT-шным командам типа ReadKey, при том, что модуль CRT вы не присоединяете? Останов программы в конце проще всего делается командой Readln, правда сработает это только при условии, что ввод с клавиатуры в теле программы осуществляется ТОЛЬКО командами Readln(x), но не Read(x). Универсальный останов лучше всего сделать так:
Uses CRT;
...
Repeat Until KeyPressed;
ReadKey;
Последняя команда, впрочем, нужна только если останов не оконечный.
Ну и в-третьих, сделана небольшая косметика: поправлены явные описки.
Надеюсь, без обид?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 24.12.2009, 11:29   #6 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,874
Сказал(а) спасибо: 318
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Универсальный останов лучше всего сделать так:
Uses CRT;
...
Repeat Until KeyPressed;
ReadKey;
Насчет универсального останова - тут меня Long Cat поправил. Совсем правильно будет так:
Код:
while keypressed do readkey; {гарантируем пустой буфер перед ожиданием}
readkey;
if (keypressed) then readkey;  {опустошаем буфер, если была нажата клавиша с расширенным скан-кодом}
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 24.12.2009, 17:04   #7 (permalink)
DDS
Member
 
Регистрация: 15.02.2009
Сообщений: 695
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 523
По умолчанию

Vladimir_S, спасибо за поправки. Буду стараться в дальнейшем их учитывать.
DDS вне форума   Ответить с цитированием
Старый 24.12.2009, 17:51   #8 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию

Спасибо большое, очень помогли))))
Если не сложно, еще одна задачка)

Оформить вычысление значения интегральной функции Ф(х), используя формулу(х>0):
http://www.tehnari.ru/imagehosting/2...371e14813b.jpg
JCHacker вне форума   Ответить с цитированием
Старый 24.12.2009, 21:20   #9 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,874
Сказал(а) спасибо: 318
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от JCHacker Посмотреть сообщение
Оформить вычисление значения интегральной функции Ф(х), используя формулу(х>0):
http://www.tehnari.ru/imagehosting/2...371e14813b.jpg
Код:
FUNCTION Fi(x:REAL;n:INTEGER):REAL;
 VAR
  i:INTEGER;
  a,S:REAL;
 BEGIN
  a:=1;
  S:=1;
  FOR i:=1 TO n DO
   BEGIN
    a:=a*SQR(x)/4/i*(2*i-1)/(2*i+1);
    S:=S+a;
   END;
  Fi:=S*x*SQRT(2/Pi);
 END; {Fi}
Надеюсь, что первый минус в скобках - опечатка.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 26.12.2009, 01:55   #10 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию

Спасибо огромнейшее)
JCHacker вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 06:17.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.