• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

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

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с прогами в Паскале

JCHacker

Ученик
Почётный участник
Регистрация
23 Июл 2008
Сообщения
584
Реакции
6
Баллы
0
Помогите с прогами в Паскале

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 задачи в Паскале)
Оч нужно!!!
Спасибо.
 
Задание 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.
 
Задание 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.
 
Задание 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, я позволил себе внести некоторую правку в Ваши программы, уж извините. Во-первых, если Вы используете генератор случайных чисел, то не забывайте в начале программы его инициализировать, т.е. написать команду Randomize. Во-вторых, ну что у Вас за пристрастие к CRT-шным командам типа ReadKey, при том, что модуль CRT вы не присоединяете? Останов программы в конце проще всего делается командой Readln, правда сработает это только при условии, что ввод с клавиатуры в теле программы осуществляется ТОЛЬКО командами Readln(x), но не Read(x). Универсальный останов лучше всего сделать так:
Uses CRT;
...
Repeat Until KeyPressed;
ReadKey;
Последняя команда, впрочем, нужна только если останов не оконечный.
Ну и в-третьих, сделана небольшая косметика: поправлены явные описки.
Надеюсь, без обид?
 
Универсальный останов лучше всего сделать так:
Uses CRT;
...
Repeat Until KeyPressed;
ReadKey;
Насчет универсального останова - тут меня Long Cat поправил. Совсем правильно будет так:
Код:
while keypressed do readkey; {гарантируем пустой буфер перед ожиданием}
readkey;
if (keypressed) then readkey;  {опустошаем буфер, если была нажата клавиша с расширенным скан-кодом}
 
Vladimir_S, спасибо за поправки. Буду стараться в дальнейшем их учитывать.
 
Спасибо большое, очень помогли))))
Если не сложно, еще одна задачка)

Оформить вычысление значения интегральной функции Ф(х), используя формулу(х>0):
102304b3371e14813b.jpg
 
Оформить вычисление значения интегральной функции Ф(х), используя формулу(х>0):
102304b3371e14813b.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}
Надеюсь, что первый минус в скобках - опечатка.
 
Спасибо огромнейшее)
 
Назад
Сверху