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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2013, 13:20   #1
YaVi
Новичок
Джуниор
 
Регистрация: 17.11.2013
Сообщений: 1
По умолчанию сумма ascii кодов всех символов строки (Delphi)

Помогите пожалуйста разобраться в чем здесь ошибка. Необходимо считать из Edit строку и найти сумму ascii кодов всех ее символов. При компиляции ошибок не показывает. Если ввожу в edit цифры,то все работает отлично,а вот с буквами не хочет.
Код:
   passw:string;
   si:char;
   k:integer;
   ....
      passw:=edit2.text;
      pw:=0;
      for k:=1 to Length(passw) do
      begin
      si:=passw[k]; pw:=pw+ord(si); end;
YaVi вне форума Ответить с цитированием
Старый 17.11.2013, 14:52   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Работает. С любыми символами
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
  sum:integer;
begin
  for i:=1 to length(Edit1.Text) do
    sum:=sum+Ord(Edit1.text[i]);
  ShowMessage(Inttostr(sum));  
end;
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 17.11.2013, 22:09   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

YaVi, не вижу в вашем коде явных косяков!
с чего Вы решили, что Ваш код не работает?!



ZX Spectrum-128, категорически НЕТ!!!!
допущена грубая ошибка - использование неиницилизированной переменной sum!


ZX Spectrum-128, вставьте проект на кнопку такой код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var sum : integer;
begin
  ShowMessage('sum='+IntToStr(sum))
end;
и попробуйте угадать, чему будет равняться sum!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.11.2013, 22:54   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Согласен, косякнул. От балды какое-то значение выведет. Или 0. Или вряд ли.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 17.11.2013, 23:03   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
От балды какое-то значение выведет.
точно так.
На форуме обсуждались вопросы иницилизации переменных компиляторами Borland. Если интересно - можете найти и ознакомиться.
Если вкратце - глобальные переменные иницилизируются компилятором, но локальные выделяются в стеке и там получается мусор. Такие переменные нужно иницилизировать ОБЯЗАТЕЛЬНО.

На мой взгляд, переменные перед использованием нужно иницилизировать всегда!
И мне в этом отношении C# (платформа .NET) нравится - там, если Вы переменную описали, а дальше пытаетесь из неё прочитать значение до того, как Вы в неё что-то записали - компилятор выдаст ошибку и не пропустит такой код. Что, имхо, правильно!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.11.2013, 23:13   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от YaVi Посмотреть сообщение
а вот с буквами не хочет.
Не хочет, это как ?
Я попробовал - работает.
яя равно 510 (2 раза по 255)
1 я равно 336 (49+32+255)

Все правильно. Проверьте коды символов.

Там не видно, надеюсь у вас
Код:
var pw:Integer;
Тип Byte, например нельзя, ответ будет не более 255.

Последний раз редактировалось type_Oleg; 17.11.2013 в 23:16.
type_Oleg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск наименьшего ASCII кода из строки символов igorio4eg Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 10.10.2011 18:08
Определение Scan и ASCII кодов Dead By Sunrise Помощь студентам 0 04.11.2010 16:40
Требуется вывести на экран последовательность из ASCII-кодов Андрей.12 Помощь студентам 5 18.06.2010 19:49
Получить строку символов из строки их кодов Baaandit Общие вопросы Delphi 3 10.11.2009 15:43
Сумма кодов строки - Borland C++Builder BattleMage C++ Builder 8 30.09.2007 05:54