Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
7 / 7 / 0
Регистрация: 17.11.2010
Сообщений: 59
1

Небольшое дополнение к лабе по теме "целые числа"

18.05.2011, 15:07. Показов 597. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
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
procedure TForm1.Button3Click(Sender: TObject);
var
i1,i2,i3,i4,i5,x:integer;
begin
x:=StrToInt(Edit1.Text);
  if x>=5 then
    begin
     for i1:=0 to x do
      begin
      for i2:=0 to x do
        begin
        for i3:=0 to x do
          begin
          for i4:=0 to x do
            begin for i5:=0 to x do
              begin
              if (i1>i2) and (i2>i3) and (i3>i4) and (i4>i5) then
                begin
                if i1+i2+i3+i4+i5=x then Memo2.Lines.Add(IntToStr(i1)+' + '
                +IntToStr(i2)+' + '+IntToStr(i3)+' + '+IntToStr(i4)+' + '
                +IntToStr(i5)+' = '+ IntToStr(x));
                end;
              end;
            end;
          end;
        end;
      end;
    end
  else ShowMessage('       Введите N>=5');
end;
end.
Так как по условию n>=5, но фактически решение имеется только при n>=10 необходимо, чтоб в таком случае писал в Memo 'Для данного числа решений нет...'. Причем не условием что 5<=n и n<9 тогда то-то, а только когда выясняется, что решений нет... Условие ниже.




Условие:
Миниатюры
Небольшое дополнение к лабе по теме "целые числа"  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2011, 15:07
Ответы с готовыми решениями:

Даны целые числа A и B (A < B). Вывести все целые числа от A до B, при этом число A+n должно выводиться n+1 раз
Даны целые числа A и B (A &lt; B). Вывести все целые числа от A до B включительно; при этом число A...

Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию.
Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по...

Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию.
Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по...

Даны целые положительные числа A и B (A < B). Вывести все целые числа от A до B включительно; при этом каждое
Даны целые положительные числа A и B (A &lt; B). Вывести все целые числа от A до B включительно; при...

В порядке убывания напечатать все целые числа из диапазона 1 . 100, которые можно представить в виде., где n, k - целые числа
В порядке убывания напечатать все целые числа из диапазона 1 .. 100, которые можно представить в...

7
20 / 20 / 10
Регистрация: 16.05.2011
Сообщений: 161
18.05.2011, 15:47 2
Можно использовать логическую переменную. Если будет вхождение в Ваш if, сменить ее значение. После циклов, если значение не изменилось - выдать то, что Вам требуется.
1
7 / 7 / 0
Регистрация: 17.11.2010
Сообщений: 59
18.05.2011, 15:50  [ТС] 3
QuakeArena, может сказывается бессонная ночь, но я не представляю, что это будет на практике... Вернее представляю, но реализовать не получается. Как, где это??
0
5705 / 2296 / 466
Регистрация: 20.11.2009
Сообщений: 7,720
Записей в блоге: 1
18.05.2011, 16:01 4
вот наглядный такой пример

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button1Click(Sender: TObject);
var b: Boolean;
    n: Integer;
begin
  b := True;
  // тут что-то делаем, проверяем, считаем ...
  if n >= 5 then
    b := False;
 
  // решаем что-то дальше
  // тут решаем...
 
 
  // тут конец всех решений
  if b = False then
    ShowMessage('Решений нет')
  else
  //Тут выводим если все же у нас прогармма пошла дальше
    ShowMessage('Результат... ');
end;
1
7 / 7 / 0
Регистрация: 17.11.2010
Сообщений: 59
18.05.2011, 17:22  [ТС] 5
Arcor, все доступно и то, что хотелось. Благодарю!

Добавлено через 1 час 4 минуты
Хотя все равно не получается...
Ругается на последнее условие..

Delphi
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
procedure TForm1.Button3Click(Sender: TObject);
var
  b:Boolean;
i1,i2,i3,i4,i5,x:integer;
begin
x:=StrToInt(Edit1.Text);
  if x>=5 then
    begin
     for i1:=0 to x do
      begin
      for i2:=0 to x do
        begin
        for i3:=0 to x do
          begin
          for i4:=0 to x do
            begin for i5:=0 to x do
              begin
              if (i1>i2) and (i2>i3) and (i3>i4) and (i4>i5) then
                begin
                  if i1+i2+i3+i4+i5=x then
                    begin
                      Memo2.Lines.Add(IntToStr(i1)+' + '
                      +IntToStr(i2)+' + '+IntToStr(i3)+' + '+IntToStr(i4)+' + '
                      +IntToStr(i5)+' = '+ IntToStr(x)); b:=true;
                    end
                  else b:=False;
                end;
              end;
            end;
          end;
        end;
      end;
    end
 
  if b = False then
    ShowMessage('Решений нет')
  else ShowMessage('       введите N>=5');
end;
0
20 / 20 / 10
Регистрация: 16.05.2011
Сообщений: 161
18.05.2011, 18:56 6
В начале программы обнулите b (b:=true; ).
В конце условие if b then Memo2.Lines.Add('Для данного числа решений нет');
По-моему Вам требовалось вывести в Memo.
Смысл в том, что если значение переменной сохраняется в течение работы программы, значит не найдено ни одного решения (нет ни одного вхождения в if).
И исправьте
Delphi
1
2
3
4
5
6
7
if i1+i2+i3+i4+i5=x then
                    begin
                      Memo2.Lines.Add(IntToStr(i1)+' + '
                      +IntToStr(i2)+' + '+IntToStr(i3)+' + '+IntToStr(i4)+' + '
                      +IntToStr(i5)+' = '+ IntToStr(x)); b:=true;
                    end
                  else b:=False;
На
Delphi
1
2
3
4
5
6
7
if i1+i2+i3+i4+i5=x then
                    begin
                      Memo2.Lines.Add(IntToStr(i1)+' + '
                      +IntToStr(i2)+' + '+IntToStr(i3)+' + '+IntToStr(i4)+' + '
                      +IntToStr(i5)+' = '+ IntToStr(x));
                      b:=False;
                    end;
1
5705 / 2296 / 466
Регистрация: 20.11.2009
Сообщений: 7,720
Записей в блоге: 1
18.05.2011, 19:09 7
Цитата Сообщение от QuakeArena Посмотреть сообщение
В начале программы обнулите b (b:=true; ).
да! все переменные нужно проинициализировать, дать начальное значение, иначе там храниться может не понять что
1
7 / 7 / 0
Регистрация: 17.11.2010
Сообщений: 59
18.05.2011, 19:21  [ТС] 8
Спасибо Работает!



На всякий случай итог выложу:
Delphi
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
procedure TForm1.Button3Click(Sender: TObject);
var
  b:Boolean;
  i1,i2,i3,i4,i5,x:integer;
begin
  b:=true;
  x:=StrToInt(Edit1.Text);
  if x>=5 then
    begin
     for i1:=0 to x do
      begin
      for i2:=0 to x do
        begin
        for i3:=0 to x do
          begin
          for i4:=0 to x do
            begin for i5:=0 to x do
              begin
              if (i1>i2) and (i2>i3) and (i3>i4) and (i4>i5) then
                begin
                  if i1+i2+i3+i4+i5=x then
                  begin
                    Memo2.Lines.Add(IntToStr(i1)+' + '
                    +IntToStr(i2)+' + '+IntToStr(i3)+' + '+IntToStr(i4)+' + '
                    +IntToStr(i5)+' = '+ IntToStr(x));
                    b:=False;
                  end;
                end;
              end;
            end;
          end;
        end;
      end;
    end
  else ShowMessage('       Ââåäèòå N>=5');
  if b then Memo2.Lines.Add('Äëÿ äàííîãî ÷èñëà ðåøåíèé íåò');
end;
0
18.05.2011, 19:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2011, 19:21
Помогаю со студенческими работами здесь

Даны целые положительные числа A и B (A < B). Вывести все целые числа от A до B включительно
Даны целые положительные числа A и B (A &lt; B). Вывести все целые числа от A до B включительно; при...

Даны целые числа A и B (A < B). Вывести все целые числа от A до B включительно
Здравствуйте коллеги! Помогите написать код на JAVA: Даны целые числа A и B (A &lt; B). Вывести все...

Дополнение к теме "СЕКРЕТНО! Зловещая точка претыкания"
Там не указаны некие операции, которые допускаются в матлабе и не являются вполне очевидными,...

Даны целые числа с1, ., с45. Даны целые числа с1, ., с45. Имеется ли в последовательности два идущих подряд нулевых
Даны целые числа с1, ..., с45. Имеется ли в последовательности два идущих подряд нулевых члена....

Комплексные числа, небольшое недоразумение
Есть задание: Найти (8-8i)^{2011} Как такую формулировку в контексте комплексных чисел стоит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru