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


Ответ
 
Опции темы Опции просмотра
Старый 06.01.2012, 18:58   #1 (permalink)
Пень
Новичок
 
Регистрация: 06.01.2012
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите доделать

данная программа решает уравнение и я тока додумал чтоб выводила ответ на экран по столбцамб а мну надо примерно так. в заранее спс и если можно поясните что вы сделали
Х/Р p1 p2 p3 p4 p5
x1 С[i,j]С[i,j]С[i,j]С[i,j]С[i,j]
x2 С[i,j]С[i,j]С[i,j]С[i,j]С[i,j]
x3 С[i,j]С[i,j]С[i,j]С[i,j]С[i,j]
x4 С[i,j]С[i,j]С[i,j]С[i,j]С[i,j]
x5 С[i,j]С[i,j]С[i,j]С[i,j]С[i,j]
место p1-p5,x1-x5 место них должны стоять числа которые вводишь, C у меня это значение уравнения
в заранее спс и если можно поясните что вы сделали

program CHyr;
var
p,x,fl:array[1..5] of real;
A,B,C:array[1..5] of real;
i,j:integer;
begin
for i:=1 to 5 do
begin
writeln ('vvedite chislo x',i);
writeln ('vvedite chislo p',i);
readln (x[i],p[i]);
end;
for i:=1 to 5 do
begin
A[i]:=sqr(cos(p[i]))*sqr(cos(p[i]))*sqr(sin(p[i]))*1/4*sin(2*x[i]*p[i])+2;
if (x[i]*x[i]*x[i]-5/2*p[i]<>0) then
begin
B[i]:=1/(x[i]*x[i]*x[i]-5/2*p[i])*exp(abs(p[i])-abs(x[i]));
C[i]:=A[i]/B[i];
fl[i]:=1;
end
else
writeln('net reshenly');
end;
for i:=1 to 5 do
begin
if fl[i]=1 then writeln (x[i],' ',p[i],' ',C[i])
else
writeln (x[i],' ',p[i],' ','net resheniy');
end;
readln;
end.
Пень вне форума   Ответить с цитированием

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

Темы которые подобны вашей уже были на нашем форуме

Как доделать микрофон? Как правильно к капсюлю припаять кабели и какой кабель?
Помогите доделать код
Pascal ABC, помогите доделать
Паскаль, типизированные файлы, помогите доделать
Помогите, пожалуйста, доделать программу на Си
Помогите доделать задание на массив

Старый 06.01.2012, 20:54   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ни бельмеса не понял. Вы можете выложить ясную, четкую и подробную формулировку задачи? Причем желательно на русском языке, а не на олбанском.
Vladimir_S вне форума   Ответить с цитированием
Старый 06.01.2012, 21:25   #3 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Насколько я понял, элементами массива должны являться значения функции, аргументы которой заданы в соответствующих строке и столбце.
Для заполнения и по строкам и по столбцам используйте вложенные циклы.
AlexZir вне форума   Ответить с цитированием
Старый 06.01.2012, 22:02   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от AlexZir Посмотреть сообщение
Насколько я понял, элементами массива должны являться значения функции, аргументы которой заданы в соответствующих строке и столбце.
Ясно.
Ну вот - исправил ошибки, "причесал", организовал вывод в требуемом формате:
Код:
program CHyr;
var
 p,x:array[1..5] of real;
 C:array[1..5,1..5] of real;
 fl:array[1..5,1..5] of boolean;
 A,B:real;
 i,j:integer;
begin
 for i:=1 to 5 do
  begin
   write('vvedite chislo x',i,' i chislo p',i,': ');
   readln (x[i],p[i]);
  end;
 for i:=1 to 5 do
  for j:=1 to 5 do
   begin
    A:=sqr(cos(p[j]))*sqr(cos(p[j]))*sqr(sin(p[j]))*1/4*sin(2*x[i]*p[j])+2;
    if (x[i]*x[i]*x[i]-5/2*p[j]<>0) then
     begin
      B:=1/(x[i]*x[i]*x[i]-5/2*p[j])*exp(abs(p[j])-abs(x[i]));
      C[i,j]:=A/B;
      fl[i,j]:=true;
     end
    else
     fl[i,j]:=false;
   end;
 writeln;
 write('  X\P   ');
 for i:=1 to 5 do write(p[i]:8:3);
 writeln;
 for i:=1 to 5 do
  begin
   write(x[i]:8:3);
   for j:=1 to 5 do
    if fl[i,j] then write(C[i,j]:8:3) else write('   -    ');
   writeln;
  end;
 readln;
end.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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


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

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




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

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