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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2015, 10:18   #1
Astiya
Новичок
Джуниор
 
Регистрация: 29.03.2015
Сообщений: 2
Вопрос Помогите разобраться с кодом!

Здравствуйте!
Помогите, пожалуйста, разобраться.
Имеется код программы, которая должна считывать введённый с клавиатуры текст и распечатывать все латинские буквы, входящие в этот текст, в алфавитном порядке. Вот код:
Код:
var c:char;                   // переменная-символ
    i : integer;              // -32768..+32767, целочисленный
    S : string;               // переменная строки
begin
Write('Введите строку:');     // вводим строку  (к примеру, "dafe")
Readln(S);                    // считывание строки как элемента S writeln('Латинские буквы, входящие в строку');     
  // выводим надпись ("Латинские буквы, входящие в строку")
for c:='A' to 'Z' do                         // для элемента С от "A" до "Z" делать
for i:=1 to Length(S) do                     // для I = от 1 до длины строки делать (вычисляет длину строки, в данном случае: I= от 1 до 4)
if c=UpCase(S[i]) then write(S[I]);   
end.
Что делается в строке "if c=UpCase(S[i]) then write(S[I])"? Как именно происходит работа программы здесь? Никак не могу понять. Остальные заметки по поводу работы программы ведь верны? Или в чём-то я сделала ошибку? Гугл выдаёт, что "UpCase(S[i])" переводит буквы из нижнего регистра в верхний, но это не так (на практике он этого не делает). За что это отвечает?
Буду очень благодарна за помощь, уже недели две мучаюсь над этим вопросом.

Последний раз редактировалось Stilet; 29.03.2015 в 11:11.
Astiya вне форума Ответить с цитированием
Старый 29.03.2015, 10:26   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Сортирует все буквы в строке по порядку (независимо от регистра).
UpCase переводит буквы латинского алфавита в верхний регистр.
Цитата:
"if c=UpCase(S[i]) then write(S[I])"
По порядку рассказываю:
Сначала переменная c станет 'A' --> проверяется вся строка с 1 символа до конца строки, если встретилась эта буква 'A' (независимо от регистра), то выводит ее на экран.
Потом с станет 'B' --> проверяется вся строка с 1 символа до конца строки, если встретилась эта буква 'B' (независимо от регистра), то выводит ее на экран.
Потом с станет 'C' и т.д. до конца ('Z')!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 29.03.2015 в 10:37.
newerow1989 вне форума Ответить с цитированием
Старый 29.03.2015, 15:33   #3
Astiya
Новичок
Джуниор
 
Регистрация: 29.03.2015
Сообщений: 2
По умолчанию

newerow1989, спасибо большое!
Очень выручили!)
Astiya вне форума Ответить с цитированием
Старый 29.03.2015, 15:33   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Пожалуйста!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с кодом braviatry11 Общие вопросы Delphi 3 12.06.2014 19:29
Помогите разобраться с кодом GugaE БД в Delphi 1 08.06.2014 15:56
Помогите разобраться с кодом Superlotles Общие вопросы Delphi 6 19.08.2009 22:24
помогите разобраться с кодом samosval Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 27.12.2007 00:20