В одном шаге от счастья

Текст задания :
Вова купил билет в трамвае 13-го маршрута и сразу посчитал суммы первых трёх цифр и последних трёх цифр номера билета (номер у билета шестизначный). Оказалось, что суммы отличаются ровно на единицу. «Я в одном шаге от счастья», — подумал Вова, — «или предыдущий или следующий билет точно счастливый». Прав ли он?


Исходные данные

В единственной строке записан номер билета. Номер состоит ровно из шести цифр, среди которых могут быть и нули. Гарантируется, что Вова умеет считать, то есть суммы первых трёх цифр и последних трёх цифр отличаются ровно на единицу.

Результат

Выведите «Yes», если Вова прав, и «No», если нет.

Примеры

Привет

исходные данные результат
715068
Yes
445219
No
012200
Yes

Решение :

Создаем новый VCL  проект. Бросаем на форму компоненты :

TButton; TButton; TMemo; TButton; TButton; TMemo;TLabel; TLabel;

Получится должно что-то похожее на эту форму :

Снимок

Кнопку «Загрузить из файла» запрограммируем так :

[cc lang=»delphi» tab_size=»2″ line_numbers=»false» no_links=»false»]

procedure TForm1.Button4Click(Sender: TObject);
begin
if FileExists (‘input.txt’) then //если файл Инпут.тхт существует,то
Memo1.Lines.LoadFromFile(‘input.txt’); //в строку Мемо1 считать данные из файла Инпут.тхт
end;

[/cc]

Кнопку «Вывод» запрограммируем так :

[cc lang=»delphi» tab_size=»2″ line_numbers=»false» no_links=»false»]

procedure TForm1.Button1Click(Sender: TObject);
var
n, i, summ1, summ2: integer;
// объявляем переменные: кол-во комбинаций,счетчик цикла(индекс),сумма1,сумма2
s: string; // строка с комбинацией
begin
n := strtoint(Memo1.Lines[0]);
// берем первую строку из Мемо1Лайнс и приссваиваем зн-е перем-й n,
// (преобразовав строку в целое число)
// Memo2.Lines.LoadFromFile(‘output.txt’);
for i := 1 to n do // цикл от 1 до n
begin
s := Memo1.Lines[i];
// берем строку с индексом и помещаем из Мемо1Лайнс и присваиваем знач-е перем-й S
summ1 := strtoint(s[1]) + strtoint(s[2]) + strtoint(s[3]);
// сумма строк с комбинациями 1,2,3 (преобразование строки в целое число)
summ2 := strtoint(s[4]) + strtoint(s[5]) + strtoint(s[6]);
// сумма строк с комбинациями 4,5,6 (преобразование строки в целое число)
if summ1 = summ2 // если сумма1=сумме2
then
Memo2.Lines.Add(‘Yes’) // то в строке Мемо2Лайнс писать»Да»
else
Memo2.Lines.Add(‘No’); // если иначе, то в строке пистать Мемо2Лайнс «Нет»
end;
end;

[/cc]

Кнопку «Сохранение результата» запрограммируем так :

[cc lang=»delphi» tab_size=»2″ line_numbers=»false» no_links=»false»]

procedure TForm1.Button3Click(Sender: TObject);
begin
Memo2.Lines.SaveToFile(‘output.txt’);
end;

[/cc]

Порядок работы программы: Кладём рядом с .exe  файлом файл input.txt, нажимаем «Загрузка из файла», «Вывод», «Сохранение результата»

Снимок

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *