![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
TBVlad |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Как бы так избавиться от досадной помехи?..
При преобразовании типа char в тип integer получаются не те цифры, которые нужны. Вместо 4 - 10, вместо 75 - 215... это какая-то особенность? Если да, то как её обмануть и получить нормальные цифры? |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Пример, КАК ты это делаешь, приведи...
|
Altair |
![]()
Сообщение
#3
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата При преобразовании типа char в тип integer получаются не те цифры, которые нужны. Вместо 4 - 10, вместо 75 - 215.. пардон ми, как ты 75 в char запихнул ? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Корректно было бы переводить char в byte - они имеют одинаковый размер в памяти. Тогда результат будет в точности соответствовать номеру символа. Например:
byte('2') даст 50 byte('A') даст 65 Ты все же напиши конкретно, что именно ты делаешь. Способов много. Ошибочных способов - еще больше ![]() И про 75 - тоже очень интересно.. Может, это #75 был? Но как получил 215 - неясно.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
K Y S K A |
![]()
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 95 Пол: Женский Реальное имя: Оля Репутация: ![]() ![]() ![]() |
зачем все так сложно?
I:=ord(ch)-ord('0') и вам это было сложно написать? |
Altair |
![]()
Сообщение
#6
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
K Y S K A, так тебе придется циклом обрабатывать каждый символ и потом все полученные цифры записывать в число. Это 2 цикла... зачем, когда есть процедура val ?
ну и кто сложне прелагает ? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
K Y S K A |
![]()
Сообщение
#7
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 95 Пол: Женский Реальное имя: Оля Репутация: ![]() ![]() ![]() |
ну например в стринг запихнуть иэто юзить
![]() |
Altair |
![]()
Сообщение
#8
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Я уже объяснил почему твой метод неприемлим.
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
TBVlad |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Владимир Репутация: ![]() ![]() ![]() |
Оставил я затею с char, сделал текстовый файл. Текст посимвольно переводится в числа (записываясь в числовой файл) и суммируется. В файле сум.тхт спрятаны числа, которые в сумме дают именно 75
![]() ![]() Program File1;
Var sum : text;
sum1 : file of integer;
s,t : string;
i,c,m,n : integer;
Begin
Assign(sum,'sum.txt');
Assign(sum1,'sum1.dat');
{$I-}
Reset(sum);
Rewrite(sum1);
{$I+}
If IOResult<>0 then
Begin
Writeln('The file is absent.');
Halt;
End;
i:=1;
n:=0;
While not eoln(sum) do
Read(sum,s);
For i:=1 to length(s) do
Begin
If s[i]<>' ' then
Begin
t:=s[i];
Val(t,m,c);
Write(sum1,m);
n:=n+m;
End;
End;
Close(sum);
Close(sum1);
Writeln(n);
End.
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата(TBVlad @ 4.02.2006 14:08) Ошибок вроде бы нет, значит какая-то хитрость. ![]() ![]() А складывать числа, а не цифры не пробовал? Program File1;
Var
sum : text;
sum1 : file of integer;
s,t : string;
i,c,m,n : integer;
Begin
Assign(sum,'sum.txt');
Assign(sum1,'sum1.dat');
{$I-}
Reset(sum);
Rewrite(sum1);
{$I+}
if IOResult <> 0 then begin
Writeln('The file is absent.'); Halt;
end;
n := 0;
while not eoln(sum) do read(sum, s); { Зачем вот это - я так и не понял }
T := '';
For i := 1 to length(s) do begin
if s[i] <> ' ' then T := T + s[i]
else begin
Val(t, m, c);
Write(sum1, m);
n := n + m;
T := '';
End;
End;
{ Ну, и последнее число в строке }
if T <> '' then begin
Val(t, m, c);
Write(sum1,m);
n := n + m;
end;
Close(sum);
Close(sum1);
Writeln(n);
End.
|
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 9:15 |