Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2009, 17:32   #1
V@mpir
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 54
По умолчанию Составляющие строки

Здравствуйте! Дан текстовый файл, в нем строка приблизительного вида
(10 4 4 4 4 4 4 4 4 4 4) необходимо найти сумму всех чисел за исключением первого в данном случаи 40 и вычесть из этой суммы (первое число-1) то есть в данном случаи получится 31. Прошу помощи!

Последний раз редактировалось V@mpir; 05.10.2009 в 19:01.
V@mpir вне форума Ответить с цитированием
Старый 05.10.2009, 18:26   #2
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

открой текстовый файл например в TStringList и раздели строку на составляющие по пробелам, и запиши значения в массив. а дальше крути массивом как хочешь.
Usov вне форума Ответить с цитированием
Старый 05.10.2009, 18:43   #3
V@mpir
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 54
По умолчанию

Приложение консольное))
V@mpir вне форума Ответить с цитированием
Старый 05.10.2009, 18:53   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от V@mpir
(10 4 4 4 4 4 4 4 4 4 4) необходимо найти сумму всех чисел за исключением первого в данном случаи 40 и вычесть из этой суммы первое число и еще 1 то есть в данном случаи получится 31.
Или я чего не понял, получаем 40 - 10 - 1 = 29. Короче, вы что-то сильно напутали в задании.
А, вообще, можете открывать файл и читать при помощи Read.
Далее, первое число записываете в переменную Sum со знаком "-", остальные прибавляете.
Arigato вне форума Ответить с цитированием
Старый 05.10.2009, 19:00   #5
V@mpir
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 54
По умолчанию

Да, прошу прощение сейчас исправлю, строка может быть и такого вида 3 2 3 4, в это случаи буде необходимо сложить 2+3+4 и вычесть (3-1) получим 7. То есть необходимо складывать все числа кроме первого и вычитать из них разность первого числа и единицы.

На счет прочих компонентов, в задаче должны быть использованы лишь компоненты доступные в Pascal, не каких мемо, стринглист и тд.

Последний раз редактировалось V@mpir; 05.10.2009 в 19:05.
V@mpir вне форума Ответить с цитированием
Старый 05.10.2009, 19:01   #6
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

Цитата:
Сообщение от V@mpir Посмотреть сообщение
Приложение консольное))
а какая разница?
Usov вне форума Ответить с цитированием
Старый 05.10.2009, 19:54   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Ещё раз идея решения: читаем из файла числа командой Read до достижения конца файла.
Первое число записываем в переменную Sum со знаком "-" и добавляем к нему 1.
Все последующие числа прибавляем к Sum.
После окончания обработки файла, выводи Sum на экран.
Arigato вне форума Ответить с цитированием
Старый 05.10.2009, 21:22   #8
V@mpir
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 54
По умолчанию

Можешь запостить код? Просто нет идей как реализовать то, что ты сказал, хотя логика твоя понятна. Основная сложность в том, что всё записано через пробел, ваше решение легко реализуется, если каждое число записано с новой строки, здесь же не так.

Последний раз редактировалось V@mpir; 05.10.2009 в 22:05.
V@mpir вне форума Ответить с цитированием
Старый 05.10.2009, 22:07   #9
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Команда Read прекрасно будет читать числа через пробелы. С новой строки читает команда ReadLn.
Arigato вне форума Ответить с цитированием
Старый 05.10.2009, 23:55   #10
V@mpir
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 54
По умолчанию

Цитата:
var i:textfile;
a,q,z,l:integer;
begin
AssignFile(ip,'ip.txt');
reset(ip);
read(ip,a);
l:=-a+1;
while not eof(ip) do
read(ip,q);
z:=l+q;
writeln(l);
readln;
Выходит так, что q=0,
V@mpir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
типизированный файл, элементами которого являются отдельные буквы, составляющие последовательность Inferno777 Помощь студентам 18 28.06.2009 14:10
С++ : Как разбить целое число на составляющие? Maruff Помощь студентам 6 17.06.2009 16:00
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27