Задача На Tyrbo Pascal

Тема в разделе "Другие", создана пользователем anerita, 8 ноя 2012.

  1. anerita

    anerita New Member

    Регистрация:
    8 ноя 2012
    Сообщения:
    0
    Симпатии:
    0
    Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1,3) и найти большее из чисел,которые принадлежат интервалу.
    Вот кусочек программы:
    Program work1;
    uses crt;
    var x,y,z: real;
    begin
    clrscr ;
    writeln('введите число x');
    readln(x);
    writeln('введите число y');
    readln(y);
    writeln('введите число z');
    readln(z);
    if (x<=3) and (x>=1) then writeln ('x-принадлежит интервалу');
    if (y<=3) and (y>=1) then writeln ('y- принадлежит интервалу');
    if (z<=3) and (z>=1) then writeln ('z-принадлежит интервалу');
    readln;
    Подскажите пожалуйста, как найти наибольшее из чисел, которые входят в интервал?
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    например,можешь в своей прграммке ,если число не принадлежит интервалу,
    делать его нулём
    тогда после твоих 3 проверок тебе останется найти максимум из 3 чисел
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    на паскале не писал лет 10 и вобще ниче не помню, но:
    Код (Text):
    var x,y,z,max: real;
    //...
    if (x<=3) and (x>=1) then begin max = x; writeln ('x-принадлежит интервалу'); end;
    if (y<=3) and (y>=1) then begin if (y > max) then max = y; writeln ('y- принадлежит интервалу'); end;
    if (z<=3) and (z>=1) then begin if (z > max) then max = z; writeln ('z-принадлежит интервалу'); end;
    writeln('max: ', max);
    Добавлено: но если ни одно из них не принадлежит интервалу - то либо в качестве Max выведется мусор, либо компилятор не даст собрать программу(предупреждение он выдать должен в любом случае), либо выдаст неверный ответ(если переменные в паскале инициализируются нулем при создании, например) или... вобщем ничего кооректного программа не скажет )
     
  4. anerita

    anerita New Member

    Регистрация:
    8 ноя 2012
    Сообщения:
    0
    Симпатии:
    0
    Спасибо большое.
     
  5. anerita

    anerita New Member

    Регистрация:
    8 ноя 2012
    Сообщения:
    0
    Симпатии:
    0
    скажите пожалуйста,блок-схема на эту программу так выглядит?
     

    Вложения:

  6. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    нет, не так.
    Для начала расставь "да", "нет" над ветками блоков условий и попробуй сама разобраться что там нарисовала слева от "y<max", чтобы такой ерунды не было придерживайся ГОСТа. Стрелки ставятся только справа налево и снизу вверх, на всех остальных потоках управления они подразумеваются. У тебя все стрелки стоят снизу вверх, исправь.
    не вижу блоков вывода ты же хочешь вывести результат)?
     
  7. anerita

    anerita New Member

    Регистрация:
    8 ноя 2012
    Сообщения:
    0
    Симпатии:
    0
    Спасибо!все поняла,все исправлю))
     
  8. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    скинь сюда новую блок схему когда исправишь, я перечислил не все косяки )
     
  9. anerita

    anerita New Member

    Регистрация:
    8 ноя 2012
    Сообщения:
    0
    Симпатии:
    0
    Извините, можете помочь с блок-схемой к этой задачи .
    Задача такая:Разбейте заданное число на 3 слагаемых всеми различными способами.Разбиение отличающиеся лишь порядком слагаемых ,разными не считать.
    program w1;
    uses crt;
    var
    a,b,c,n:integer;
    begin
    writeln('vvedite chislo');
    readln(n);
    for a:=1 to n-2 do begin
    for b:=1 to n-2 do begin
    for c:=1 to n-2 do begin
    if a+b+c=n then begin
    writeln(n,'=',a,'+',b,'+',c);
    end;
    end;
    end;
    end;
    readln;
    end.
     
  10. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    чем помочь?
     
  11. anerita

    anerita New Member

    Регистрация:
    8 ноя 2012
    Сообщения:
    0
    Симпатии:
    0
    не получается построить блок-схему к данной задаче:
    Program w1;
    uses crt;
    var i,j,k,n:integer;
    begin
    clrscr;
    write('введите число');
    readln(n);
    for i:=1 to n-2 do
    for j:=i to n-i-1 do
    for k:=j to n-i-j do
    if i+j+k=n then writeln(n ,’=’,i,'+',j,'+',k);
    readln
    end.
    Никак не разберусь с циклами.
     
  12. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    покажите что получается
     
  13. anerita

    anerita New Member

    Регистрация:
    8 ноя 2012
    Сообщения:
    0
    Симпатии:
    0
    ну вот.
     

    Вложения:

  14. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    вроде бы верно. Надо добавить "да"/"нет" возле блока условия и в третьем цикле на первой итерации k = j, а не 1, аналогично, j = i, а не 1.
     
  15. anerita

    anerita New Member

    Регистрация:
    8 ноя 2012
    Сообщения:
    0
    Симпатии:
    0
    да,точно.просто не правильно переписала. спасибо за помощь!)
     
Загрузка...
Похожие Темы - Задача На Tyrbo
  1. elzim
    Ответов:
    0
    Просмотров:
    932
  2. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.128
  3. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.107
  4. MonteCristo
    Ответов:
    1
    Просмотров:
    852
  5. bort
    Ответов:
    1
    Просмотров:
    1.181

Поделиться этой страницей