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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2009, 10:15   #1
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию Задача на удаление символов из текста

Написать программу. Дан текстовый файл. В текст могут входить слова из латинских букв, цифры, знали арифметических операций, точка, запятая, пробел. Удалить из текста все символы, кроме букв и пробелов, заменить все большие буквы на маленькие. Вывести полученный текст.
Помогите, пожалуйста, в течении 40 минут. В долгу не останусь...спасибо
Horknee вне форума Ответить с цитированием
Старый 19.01.2009, 10:35   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию Полагаю экзамен :)

Код:
uses crt;
var f:text;
    ch:char;
    s:set of char;
begin
clrscr;
s:=['a'..'z','A'..'Z',#32];
assign(f,'c:\1.txt');
reset(f);
while not(eof(f)) do
 begin
  read(f,ch);
  if ch in s then begin
            if (ord(ch)<91)and (ord(ch)<>32) then  ch:=chr(ord(ch)+32);
            write(ch);
            end;
 end;
 close(f);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 19.01.2009, 10:36   #3
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

С меня отзыв как буду домаОгромное спасибо
Horknee вне форума Ответить с цитированием
Старый 19.01.2009, 10:43   #4
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

А что такое #32 и ord(ch)?
Horknee вне форума Ответить с цитированием
Старый 19.01.2009, 10:45   #5
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Horknee Посмотреть сообщение
А что такое #32 и ord(ch)?
#32 - ASCII код пробела
ord(ch) - возвращает код ASCII
для прописных латинских букв код ASCII 65(A)-90(Z), а для малых (a-z) 97 -122
chr(x)- возвращает символ по коду x
Например chr(65) - вернет A
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 19.01.2009, 10:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
#32
Это код пробела
Цитата:
ord(ch)
Это функа получения кода символа. см. в хелпе
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2009, 10:50   #7
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

Оо все понял...только еще немного не сообразил откуда взялось chr(ord(ch)+32). И что это значит.
Horknee вне форума Ответить с цитированием
Старый 19.01.2009, 10:53   #8
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Horknee Посмотреть сообщение
Оо все понял...только еще немного не сообразил откуда взялось chr(ord(ch)+32). И что это значит.
Это взялось из условия Если буква прописная и не пробел
ord(ch)<91 and ord(ch)<>32 то к коду прибавляем 32
Код:
chr(ord(ch)+32)
A-65 a-97 (97-65)=32
B-66 b-98 (98-66)=32
... ....
Z-90 z-122
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 19.01.2009, 10:56   #9
Horknee
Пользователь
 
Регистрация: 21.09.2008
Сообщений: 70
По умолчанию

Если вам не сложно помогите пожалуйста еще одну задачку другу.
Дан целочисленный массив из n элементов. Все отрицательные элементы массива перенести в его начало, а остальные в конец,сохраняя исходное взаимное расположение как среди отрицательных, так и среди остальных элементов. Написать программу, которая вводит массив, переставляет его элементы и выводит результат на экран.
Horknee вне форума Ответить с цитированием
Старый 19.01.2009, 11:27   #10
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
const n=10;
var a:array[1..n] of integer;
    i,temp,j,k,otr:integer;
    
begin
clrscr;
for i:=1 to n do
begin
 a[i]:=random(10)-random(10);
 write(a[i]:3);
end;
otr:=0;
writeln;
for i:=1 to n do
  if a[i]<0 then begin
                  temp:=a[i];
                  j:=1;
                  inc(otr);
                  while a[j]<0 do inc(j);
                  dec(j);
                  if j<1 then j:=1;
                  for k:=i downto j+1 do
                   a[k]:=a[k-1];
                  a[otr]:=temp;
                 end;

 for i:=1 to n do
 write(a[i]:3);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление гласных, согласных, цифровых символов в строке <zeroql> Паскаль, Turbo Pascal, PascalABC.NET 9 27.11.2008 08:05
Удаление символов из ячейки gavrylyuk Microsoft Office Excel 2 26.08.2008 16:44
тип поля для хранения текста > 255 символов komex БД в Delphi 4 23.09.2007 12:38
Удаление символов MURAD Общие вопросы C/C++ 3 19.08.2007 01:25
удаление текста с конца Lonix Общие вопросы Delphi 7 12.07.2007 14:00