Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
qpiwebb
4 / 1 / 2
Регистрация: 08.06.2015
Сообщений: 21
#1

Линейные программы на Delphi - Delphi

08.06.2015, 08:53. Просмотров 541. Ответов 16
Метки нет (Все метки)

Из трехзначного числа Х вычли его последнюю цифру. Когда результат разделили на 10, а к частному слева приписали последнюю цифру числа Х, то получилось число 458. Найти число Х.
Есть наработка небольшая:
Delphi
1
2
3
4
5
6
7
var chastnoe,cifra,x,y:integer;
begin
y:=strtoint(Edit1.Text);
cifra:=(y div 100);
chastnoe:=(y mod 100);
x:=chastnoe*10+cifra;
Edit2.Text:=inttostr(x);
Только соль в том что некоторые другие числа не работают!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2015, 08:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Линейные программы на Delphi (Delphi):

Delphi 7 Линейные программы
1. Масса молекул кислорода в организме человека составляет 65% от его массы....

Delphi 7 Линейные программы.Лабораторная работа №2 Ветвления
Помогите кто чем может:sorry: Задание 1. Туристы вышли из леса на шоссе...

Линейные уравнения в delphi
Помогите составить программу которая могла бы решать уравнения вида - ax+by=d,...

Линейные программы
4. Система из двух параллельных сопротивлений R1 и R2 соединена последовательно...

Линейные программы.
Помогите с написанием кода : Написать программу для расчета по двум формулам:...

Delphi линейные списки и записи,не могу разобраться
Создать запись "Станция" (хранит номер или название). Создать запись "Поезд"...

16
Mawrat
12821 / 5729 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
08.06.2015, 10:35 #2
Цитата Сообщение от qpiwebb Посмотреть сообщение
Из трехзначного числа Х вычли его последнюю цифру. Когда результат разделили на 10, а к частному слева приписали последнюю цифру числа Х, то получилось число 458. Найти число Х.
Код для подбора решений этой задачи.
На форму надо положить:
Delphi
1
2
3
    Button1: TButton;
    Edit1: TEdit;
    Memo1: TMemo;
Для кнопки Button1 создать обработчик события OnClick. В Edit1 вводится число 458 или другое, в Memo1 выводится перечень решений (X) для данного числа.
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
procedure TForm1.Button1Click(Sender: TObject);
var
  Y, D1, D2, D3, Cnt : Integer;
begin
  Memo1.Lines.Add('--------------------------------------------------');
  Y := StrToInt(Edit1.Text);
  if (Y < 100) or (Y > 999) then
  begin
    MessageBox(Handle, 'Неверный ввод. Число должно быть целым, трёхзначным, положительным. Повторите.',
      'Ошибка ввода!', MB_OK + MB_ICONEXCLAMATION + MB_APPLMODAL);
    Exit;
  end;
 
  Memo1.Lines.Add('Y = ' + IntToStr(Y));
  Memo1.Lines.Add('Перечень решений:');
  Cnt := 0;
  for D1 := 1 to 9 do //Возможные значения первого разряда (считая слева).
    for D2 := 0 to 9 do //Возможные значения второго разряда (считая слева).
      for D3 := 0 to 9 do //Возможные значения третьего разряда (считая слева).
        if D3 * 100 + D1 * 10 + D2 = Y then
        begin
          Inc(Cnt);
          Memo1.Lines.Add('X = ' + IntToStr(D1 * 100 + D2 * 10 + D3));
        end;
   Memo1.Lines.Add('Количество решений: ' + IntToStr(Cnt));
end;
1
qpiwebb
4 / 1 / 2
Регистрация: 08.06.2015
Сообщений: 21
08.06.2015, 10:43  [ТС] #3
Цитата Сообщение от Mawrat Посмотреть сообщение
Для кнопки Button1 создать обработчик события OnClick. В Edit1 вводится число 458 или другое, в Memo1 выводится перечень решений (X) для данного числа.
Мне нужно именно линейные, циклы и ветвления не устраивают
0
Immo
180 / 180 / 90
Регистрация: 02.10.2012
Сообщений: 808
08.06.2015, 10:48 #4
Delphi
1
2
3
4
var
FAnswer:string;
begin
FAnswer:=FloatToStr(458 mod 10)+FloatToStr(458 div 10);
2
Mawrat
12821 / 5729 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
08.06.2015, 10:49 #5
Тогда вот так. На форму надо положить:
Delphi
1
2
    Button1: TButton;
    Edit1: TEdit;
Для кнопки Button1 создать обработчик OnClick.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.Button1Click(Sender: TObject);
var
  Y, D1, D2, D3 : Integer;
begin
  Y := StrToInt(Edit1.Text);
  if (Y < 100) or (Y > 999) then
  begin
    MessageBox(Handle, 'Неверный ввод. Число должно быть целым, трёхзначным, положительным. Повторите.',
      'Ошибка ввода!', MB_OK + MB_ICONEXCLAMATION + MB_APPLMODAL);
    Exit;
  end;
 
  //Определяем разряды числа Y.
  D3 := Y mod 10;
  Y := Y div 10;
  D2 := Y mod 10;
  Y := Y div 10;
  D1 := Y mod 10;
  //Получаем число X.
  ShowMessage('X = ' + IntToStr(D2 * 100 + D3 * 10 + D1));
end;
1
qpiwebb
4 / 1 / 2
Регистрация: 08.06.2015
Сообщений: 21
08.06.2015, 10:57  [ТС] #6
Цитата Сообщение от Mawrat Посмотреть сообщение
Тогда вот так. На форму надо положить:
Вот смотри как получается так же как и у меня до этого попробуй ввести 273 327 396
Мне кажется что то не так ваще
0
Mawrat
12821 / 5729 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
08.06.2015, 11:09 #7
Цитата Сообщение от qpiwebb Посмотреть сообщение
Вот смотри как получается так же как и у меня до этого попробуй ввести 273 327 396
Мне кажется что то не так ваще
Посмотрел твой код - у тебя всё правильно сделано.

Добавлено через 1 минуту
Например, 273 -> X = 732. Так и должно быть. Всё правильно.
1
qpiwebb
4 / 1 / 2
Регистрация: 08.06.2015
Сообщений: 21
09.06.2015, 11:05  [ТС] #8
Цитата Сообщение от Mawrat Посмотреть сообщение
Посмотрел твой код - у тебя всё правильно сделано.
Спасибо большое) Оказывается мой вариант проще))

Добавлено через 23 часа 53 минуты
Цитата Сообщение от Mawrat Посмотреть сообщение
Посмотрел твой код - у тебя всё правильно сделано.
Короче что то всетаки не так, ввожу 458 получаю 584 а должен 854 или 845 точно не знаю.
Может есть у кого исходник чтобы разбить по частям и собрать потом
0
Puporev
Модератор
54124 / 41757 / 28869
Регистрация: 18.05.2008
Сообщений: 98,280
09.06.2015, 11:14 #9
Цитата Сообщение от qpiwebb Посмотреть сообщение
получилось число 458. Найти число Х.
Delphi
1
x:=458-400+4;
Добавлено через 2 минуты
Цитата Сообщение от qpiwebb Посмотреть сообщение
Из трехзначного числа Х вычли его последнюю цифру. Когда результат разделили на 10, а к частному слева приписали последнюю цифру числа Х, то получилось число 458. Найти число Х.
584-4=580
580/10=58
400+58=458
1
qpiwebb
4 / 1 / 2
Регистрация: 08.06.2015
Сообщений: 21
09.06.2015, 11:30  [ТС] #10
Цитата Сообщение от Puporev Посмотреть сообщение
584-4=580
580/10=58
400+58=458
Delphi
1
2
3
4
5
6
var m,n:string;
begin
m:=edit17.Text;
n:=Copy(m,length(m),1)+Copy(m,1,1)+copy(m,2,length(m)-2);
Edit1.text:=n;
end;
Говорят что это правильно а то что я сделал нет

Delphi
1
2
3
4
5
6
7
8
var chastnoe,cifra,x,y:integer;
begin
y:=strtoint(Edit17.Text);
cifra:=(y div 100);
chastnoe:=(y mod 100);
x:=chastnoe*10+cifra;
Edit1.Text:=IntToStr(x);
end;
0
Immo
180 / 180 / 90
Регистрация: 02.10.2012
Сообщений: 808
09.06.2015, 11:37 #11
чем мой вариант не устраивает?чем какой то гемор придумывать
Delphi
1
2
3
4
5
var
FAnswer:string;
begin
y:=strtoint(Edit17.Text);
FAnswer:=FloatToStr(y mod 10)+FloatToStr(y div 10);
1
qpiwebb
4 / 1 / 2
Регистрация: 08.06.2015
Сообщений: 21
09.06.2015, 11:43  [ТС] #12
Цитата Сообщение от Immo Посмотреть сообщение
чем мой вариант не устраивает?чем какой то гемор придумывать
так тоже правильно, ща глянем что к чему тогда
0
Puporev
Модератор
54124 / 41757 / 28869
Регистрация: 18.05.2008
Сообщений: 98,280
09.06.2015, 11:46 #13
и где здесь гемор
Delphi
1
x:=458-400+4;
0
Immo
180 / 180 / 90
Регистрация: 02.10.2012
Сообщений: 808
09.06.2015, 11:47 #14
Цитата Сообщение от Pporev
и где здесь гемор
x:=458-400+4;
458-400=58
58+4=64
это по твоему ответ?)
тем более ТС изменил свою программу, и сам вводит число с эдита
0
qpiwebb
4 / 1 / 2
Регистрация: 08.06.2015
Сообщений: 21
09.06.2015, 11:55  [ТС] #15
Цитата Сообщение от Immo Посмотреть сообщение
458-400=58
58+4=64
это по твоему ответ?)
тем более ТС изменил свою программу, и сам вводит число с эдита
Тут не я командую
0
Puporev
Модератор
54124 / 41757 / 28869
Регистрация: 18.05.2008
Сообщений: 98,280
09.06.2015, 11:56 #16
да уж...
Delphi
1
x:=10*(458-400)+4;
0
Narimanych
275 / 236 / 124
Регистрация: 23.03.2015
Сообщений: 811
09.06.2015, 13:56 #17
Есть число ABC, если из него вычесть С и разделить на 10 - получится AB . Затем к AB приписывается слева C.
Т.Е получаем САВ.
Сл-но легче сделать обратную перестановку строковых переменных CAB и прийти к ABC.
Допустим в Edit введено число ( слово KLM).Изменив позицию К ( перемемтив К в конец) получим искомое число(слово).

Добавлено через 2 минуты
Цитата Сообщение от Narimanych Посмотреть сообщение
перемемтив
Sorry -"перемеcтив"
0
09.06.2015, 13:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 13:56
Привет! Вот еще темы с решениями:

Линейные списки(перевести вроде с Си++ на Delphi [console application])
Здравствуйте, переведите, пожалуйста, программу с вроде Си ++ на Delphi; Си...

линейные программы
Найти плоскость кольца с внутренным и наружным радиусами используя формулу S=...

Нуждаюсь в написании программы. Линейные списки
Сформировать односвязный список из 7 записей, вывести список, удалить записи,...

Есть исходник DLL на Delphi как (и возможно ли) написать похожее на VB.NET и использовать в среде программы написанной на Delphi
Суть вопроса вкратце такова - Есть исходник DLL написанной на Delphi Library...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru