Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Турбо Паскаль. Программирование на Pascal
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]
Модераторы: paradise, KMA
  

amigo


Начинающий

Вы задаёте не правильно поставленные вопросы.
НЕчего мы  такого не рассматриваем. У нас задача решается
абсолютно для всех случаев. ТОлько нужно исправить два момента:
Во первых завести метку 1;
а во вторых изменить d на diskr;
Тоесть если дискрименант меньше нуля то в действительных
цислах-решений нет.
goto- значит, что нужно передать управление в другое
место программы.

Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 19 дек. 2006 0:30 | IP
KMA



Долгожитель

На самом деле, такой метод реально, очень действительный, но, блин, плохой тон однако. Я обычно пользуюсь такой вещью как flag: boolean;

В данном случае, надо код передлать немного по другому
flag:=true;
if d<0
  then
   begin
     writeln('Решений нет');
     flag:=false;
   end;

Ну а дальше:

if flag
  then {ну а дальше переписываем вот то условие, которое выводит ответ}ж

amigo, естественно, что таким людям как Котенок 17 надо помогать, я всеми руками за...  =) Вот.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 19 дек. 2006 0:34 | IP
Kotenok 17


Удален

Вот спасибо объяснил и еще так подробно....ОГРОМЕННОЕ ТЕБЕ СПАСИБИЩЕ!!!!!спокойной ночи!

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 19 дек. 2006 0:35 | IP
amigo


Начинающий


Цитата: KMA написал 19 дек. 2006 0:34
На самом деле, такой метод реально, очень действительный, но, блин, плохой тон однако. Я обычно пользуюсь такой вещью как flag: boolean;

В данном случае, надо код передлать немного по другому
flag:=true;
if d<0
  then
   begin
     writeln('Решений нет');
     flag:=false;
   end;

Ну а дальше:

if flag
  then {ну а дальше переписываем вот то условие, которое выводит ответ}ж

amigo, естественно, что таким людям как Котенок 17 надо помогать, я всеми руками за...  =) Вот.



Да я знаю, что многие не любят использовать метки считая
это дурным тоном. Особенно такая тенденция возникла после того как было полученно математически строгое доказательство, возможности решения любой задачи без использования меток, используя  иные управляющие структуры.
Однако в практической деятельности я далёк от этих
предрасутков, и предпочитаю скорее руководствоваться принципом " Бритва Оккама " .

Всего сообщений: 54 | Присоединился: март 2006 | Отправлено: 19 дек. 2006 0:50 | IP
KMA



Долгожитель

Мда, а если говорить о математическом доказательстве, то тут сразу вспоминается машина Тюринга, нормальные алгорифмы Марова, которые могут быть реализованы на машине при помощи цикла и оператора условия.

Я сам иногда люблю пользоваться метками =) Поэтому корить не за что, я просто привел вариант альтернативные твоему, так, чтобы человеку не знакомыми с ними (к сожалению, очень многим даже не рассказывают про них) было понятно.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 19 дек. 2006 0:53 | IP
Guest



Новичок


Цитата: Chert написал 18 дек. 2006 5:00
Program lab_2;
   uses crt;
   label 3;
   var u,x,y,:real;
Begin
   clrscr;
  3:write('x=');read(x);
     write('y=');read(y);
  if(abs(x)+abs(y)>1)and(x<0)then begin write('решения    нет');goto 3 end
  else begin  
  write('net');
  writeln;
  goto 3;
  end;
  if(abs(x)+abs(y)<=1)and(x>=0)then u:=ln(x)+(ln(y))/(6+(sqrt(sqr(x)+1)))/abs(y-x)+(sqrt(x));
  if(abs(x)+abs(y)>1)and(x<>0)then u:=abs(x-y)*(1+cos(x+y))/(2*ln(x));
  writeln;
End.
В чём ошибка понятия не имею,Alt F5 нажимаю числа подставляю что бы соответствовали х и y,а он всё равно сис.не решает,пишет мне "нет",помогите пожалуйста,я уже не знаю что и делать.
 Опять здрасти,я снова выложил свою задачу с той же проблемой,так как XyHTa пытался помчь,я попробовал как он посоветовал не получается,прошу ещё раз помочь.Это предложил мне XyHTa не помогло:
3:write('x=');read(x); //(3)
    write('y=');read(y);
 if(abs(x)+abs(y)>1)and(x<0)then //(1)
begin write('решения    нет');goto 3 end
 else begin  
 write('net');
 writeln;
 goto 3; //(2)
 end;

Если условие (1) истинно, то будет вывод "решений нет" и переход на (3). Если (1) ложно, то вывод "нет" и опять переход на (3) из строки (2). Т.о. получаем бесконечный цикл.



Это было не предложением решения, а указанием неправильного кода

Всего сообщений: Нет | Присоединился: Never | Отправлено: 19 дек. 2006 16:21 | IP
kotenokGaw


Удален

помогите с программами

1)нужно ввести вектор если его элементы упорядочены по возростанию или убыванию тогда вывести на экран если нет убрать из вектора элементы порядковые номера кот кратны трем сохранив прежний порядок оставшихся членов.Програма почему-то игнорирует условие и выводит какуето ерунду
program rgr2;
uses crt;
var a,b:array[1..12] of real;
   k,m,i:integer;
begin clrscr;
     writeln ('vvedi vektor a');
     for i:=1 to 12 do
     read(a);
     for i:=1 to 12do
     begin  for i:=1 to 11 do
     if (a<a[i+1])or(a[i+1]<a) then
     writeln('vektor a',a:7:1)
     else begin if i mod 3=0 then
 i =k;
   b:=a-a[k]
   for i :=1 to 12 do
   writeln('b=',b:7:1);
     end;end;readkey;
     end.

а это вторая:
нужно найти и вывести на экран те числа сумма кубов которых равна самому числу .Нр 407=4*4*4+0*0*0+7*7*7
program rer;
uses crt;
var x,y,a,b,c:integer;
begin clrscr;
   for x:=100 to 999 do
    begin for a:=1 to 9 do
   for b:=0 to 9 do
   for c:=0 to 9 do
   y:=a*a*a+b*b*b+c*c*c
   end;
   if x=y then write('x=',x);
   readkey;end.
не правильно оформлены циклы и поэтому берутся только последние значения х и у а до условия так и не доходит

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 19 дек. 2006 18:07 | IP
KMA



Долгожитель

kotenokGaw, по первой задаче хочу сказать только одно, что нельзя в условии сразу проверять, возрастающая или убывающая последовательность. Пусть дан ряд 1 2 1. Он окажется по твоим или убывающим, или возрастающим, тут уж дорогуша надо сразу определяться.

пишите i не в квадратных скобках, а в {} или так [ i ].

Значит вот код. fUp, fDown, fError: boolean;
n:=0;
fUp:=false;
fDown:=false;
i:=1;
while (i<11) or fUp or fDown do
 begin
   if a[ i ]>a[i+1]
      then fUp:=true;
   if a[ i ]<a[i+1]
     then fDown:=true;
   inc (i)
 end;
{таким образом мы узнали убывающая у нас последовательность или возрастающая (по первым элементам, в случае равенства, будет повторено еще раз)}
fError:=false;
if fUp
   then while (i<11) or fError do
             begin
               if a[ i ]<a[i+1]
                  then fError:=true;
               inc (i)
             end;
if fDown
   then while (i<11) or fError do
             begin
               if a[ i ]>a[i+1]
                  then fError:=true;
               inc (i)
             end;
if fError
  then for i:=1 to 12 do
            if a[ i ] mod 3=0
               then a[ i ]:=0;
for i:=1 to 12 do
write (a[ i ]);

{вот в принципе и вся твоя прога. }

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 19 дек. 2006 23:33 | IP
KMA



Долгожитель

Вторая задача слишком замдурена.

Вот ее решение:

for i:=1 to 9 do
for j:=0 to 9 do
 for k:=0 to 9 do
  if ((i*i*i+j*j*j+k*k*k)=(i*100+j*10+k))
     then wrte (i, j, k, ' ');

Вот и все.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 19 дек. 2006 23:42 | IP
kotenokGaw


Удален

пасиб тебе большое

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 20 дек. 2006 15:45 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]

Форум работает на скрипте © Ikonboard.com