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

Переставить местами первую и последнюю цифры числа

29.01.2017, 11:06. Показов 3506. Ответов 26

Author24 — интернет-сервис помощи студентам
Дано натуральное число n (записано в изначальном файле на диске). Переставить местами первую и последнюю цифры этого числа.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2017, 11:06
Ответы с готовыми решениями:

Дано натуральное число n. Переставить местами первую и последнюю цифры числа n
Дано натуральное число n. Переставить местами первую и последнюю цифры числа n

Поменять местами первую и последнюю букву местами в словах
Форма состоит из Combo Box , двух Label и одной кнопки для выхода из проги. Исправьте пожалуйста...

как поменять первую и последнюю цифру местами?
дано число как поменять первую и последнюю цифру местами?

Поменять местами первую и последнюю буквы каждого слова
Дана строка символов, состоящая из произвольного текста на английском языке, слова разделены...

26
Эксперт Pascal/Delphi
6810 / 4567 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
29.01.2017, 11:40 2
Взято отсюда:
Переставить местами первую и последнюю цифры числа

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
var
  n, m, c1, cp: longint;
  k, i: byte;
  f: file of integer;
 
begin
  assign(f, 'file.dat');
  reset(f);
  read(f, n);{например 12345}
  close(f);
  cp := n mod 10;{последняя цифра}
  n := n div 10;{число без последней цифры}
  m := n;{запомним его}
  k := 0;
  while m > 9 do{пока не останется 1 цифра}
  begin
    m := m div 10;
    k := k + 1;{количество разрядов без первого}
  end;
  c1 := m;{запомним первую цифру}
  for i := 1 to k do
  begin
    m := m * 10;{повышаем разряд числа, равного первой цифре}
    cp := cp * 10;{повышаем разряд последней цифры}
  end;
  n := (n - m) * 10 + c1 + cp * 10;{получаем число=(1234-1000)*10+1+5000*10=52341}
  writeln('n2=', n);
end.
1
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,824
Записей в блоге: 3
29.01.2017, 20:03 3
ZX Spectrum-128, со строками, по-моему, все гораздо проще...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var n : string;
    tmp : Char;
    f : TextFile;
begin
 AssignFile(f, 'c:\tmp\1.txt');
 Reset(f);
 Read(f, n);
 CloseFile(f);
 Writeln('Old Number: ', n);
 tmp := n[1];
 n[1] := n[Length(n)];
 n[Length(n)] := tmp;
 Writeln('New Number: ', n);
 Readln;
end.
Название: Снимок.PNG
Просмотров: 44

Размер: 6.8 Кб

Не по теме:

Вот только думаю, школьнику надо именно пример работы с числами...

1
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 70
31.01.2017, 13:11  [ТС] 4
Выдаёт ошибку I/O error 105 на строке с Writeln.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.01.2017, 13:14 5
Цитата Сообщение от D1973 Посмотреть сообщение
со строками, по-моему, все гораздо проще...
Естественно, правда такое решение препод не примет.
0
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 70
31.01.2017, 13:16  [ТС] 6
Ещё как примет.
И его код выглядит более правильным даже, на мой личный взгляд.
Только почему-то не работает он(
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.01.2017, 13:18 7
Цитата Сообщение от m00nlight Посмотреть сообщение
на мой личный взгляд.
Только почему-то не работает он(
Даже страшно спорить с таким вумным челом, прям как украинские недоумки в разных шоу на ТВ.
0
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 70
31.01.2017, 13:20  [ТС] 8
Ошибка там.
Пытаюсь и не могу понять в чём.
А сам посыл кода - правильный.
0
Эксперт Pascal/Delphi
6810 / 4567 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
31.01.2017, 13:22 9
Цитата Сообщение от m00nlight Посмотреть сообщение
Ошибка там
Где? Покажите ошибку.

Файл вы создали? В указанной папке, с указанным именем? И число в него записали?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.01.2017, 13:23 10
Тебе бы прочитать чем отличается консольный и оконный режим в Делфи и научиться не просто копипастить чужие коды а хоть что-то написать самому.
0
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 70
31.01.2017, 13:28  [ТС] 11
Файл создал.
Там записал число из 6 цифр случайное.
В коде указал путь к файлу на диске C.
В свойствах файла разрешил всё (чтоб прав Админа не требовал).
Ругается на эту строку сам Delphi
Цитата Сообщение от D1973 Посмотреть сообщение
Writeln('Old Number: ', n);
Суть ошибки я описал комментарием выше.

Добавлено через 3 минуты
И что же именно нужно прописать ещё?
О, просвятите же меня, гуру; чтоб в дальнейшем я больше не делал подобных ошибок.
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,824
Записей в блоге: 3
31.01.2017, 13:30 12
m00nlight, показывай свой код. И никогда не засоряй корень диска, даже если диск не системный. Создай папку - в ней и работай
1
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 70
31.01.2017, 13:31  [ТС] 13
Так в папке то всё и делаю.
Код ничем от вашего существенно не отличается.
Отличается лишь путём к файлу.
А там всё нормально.
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,824
Записей в блоге: 3
31.01.2017, 13:34 14
m00nlight, вот как можно сказать, почему у тебя ошибка, не видя того, что написано именно у тебя. У меня этот код прекрасно работает, что видно на скрине.
1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.01.2017, 13:35 15
Да он наверняка пытается засунуть твой код в оконное приложение.
1
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 70
31.01.2017, 13:37  [ТС] 16
А вот мой код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button1Click(Sender: TObject);
var n : string;
    tmp : Char;
    f : TextFile;
begin
 AssignFile(f, 'C:\tmp\forteen.txt');
 Reset(f);
 Read(f, n);
 CloseFile(f);
 Writeln('Old Number: ', n);
 tmp := n[1];
 n[1] := n[Length(n)];
 n[Length(n)] := tmp;
 Writeln('New Number: ', n);
 Readln;
end;
end.
p.s. Я предупреждал, что там то же самое.
Я даже папку с таким же названием создал, чтоб не париться.
Так же прилагаю свой уже скрин, он же результат компиляции.
Миниатюры
Переставить местами первую и последнюю цифры числа  
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,824
Записей в блоге: 3
31.01.2017, 13:43 17
Лучший ответ Сообщение было отмечено m00nlight как решение

Решение

Ха... Puporev, +100500 твоему телепатору. Хотя в этом случае только 2 беды может быть: либо в окна косольный код пихал, либо убрал директиву {$APPTYPE CONSOLE}
m00nlight,
положи на форму 2 метки (Label)
исправь строку 10 на
Delphi
1
Label1.Caption := 'Old Number ' + n;
строку 14 на
Delphi
1
Label2.Caption := 'New Number ' + n;
строку 15 убери вообще
1
0 / 0 / 0
Регистрация: 29.01.2017
Сообщений: 70
31.01.2017, 13:50  [ТС] 18
Спасибо)
Вот теперь всё работает.
Вот так бы сразу.

Не кусайте так ни о чём программистов вроде меня.
Нам просто работа с файлами сложно даётся.
0
ZX Spectrum-128
31.01.2017, 13:53
  #19

Не по теме:

m00nlight, преподаватель код со строками не примет.

0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.01.2017, 13:56 20
Цитата Сообщение от m00nlight Посмотреть сообщение
Нам просто работа с файлами сложно даётся.
Да при чем тут файлы, если в голове вакуум как в заднице.

Добавлено через 54 секунды
Цитата Сообщение от m00nlight Посмотреть сообщение
программистов вроде меня.
Не пиши больше так, а то кто-то найдет тебя в реале и набьет лицо.
0
31.01.2017, 13:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2017, 13:56
Помогаю со студенческими работами здесь

Поменять местами первую и последнюю компоненты текстового файла
Помогите пожалуйста необхідно Створити текстовий файл цілих чисел. Поміняти місцями першу та...

дана матрица.поменять местами первую и последнюю строку,а их элементы увеличить на 2
Дана матрица A(n,m). Поменять местами первую и последнюю строку, а каждый элемент этих строк...

Заполните двумерный массив А (4, 4) целыми числами в диапазоне от 0 до 200 и поменять местами первую и последнюю строки
Дополните приложение кнопкой "Столбцы", которая производит обмен указанных столбцов матрицы

Переставить цифры числа так, чтобы получить максимально возможное число, записанное теми же цифрами
Дано натуральное число. Переставить его десятичные цифры так, чтобы получить максимально возможное...


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

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