Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 28.10.2019, 23:06   #1 (permalink)
Gasphord
Новичок
 
Регистрация: 15.10.2019
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question Type и символьные массивы

Выведите текст,составленный из последних букв всех слов списка C.
Помогите дописать программу, застрял и не понимаю что делать.
Код:
type
  slovo = array [1..5] of char;
  spisok = array [1..60] of slovo;
var
  C: spisok;
  i, j: integer;
  s: string;
begin

  s := '';
  for i := 1 to 60 do
    s := s + c[i][5];
end;
Delphi 10.3
Gasphord вне форума   Ответить с цитированием

Старый 28.10.2019, 23:06
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Можете набраться информации из аналогичных обсуждений

USB Type-C - mini-USB 10 pin
SymbolsKeyboard & TextArt - символьные изображения

Старый 29.10.2019, 12:02   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 112676
По умолчанию

Постараюсь помочь, чем могу.
К сожалению, на Delphi я не пишу (когда-то занимался этим, да всё забыл), поэтому обойдёмся Паскалем. Чтобы не возиться с дельфийскими формами, ввод/вывод я сделал файловым. Входной файл Sl.txt содержит исходный текст. Текст может содержать множественные пробелы, знаки препинания, переводы строки и т.п. — всё обработается. НО! ВНИМАНИЕ — ВАЖНО! Никакой кириллицы: программа обрабатывает ТОЛЬКО латиницу. Впрочем, расширить код для работы с кириллицей, в принципе, несложно.
Результат выводится в файл Smb.txt.
Пути к файлам поставьте свои.
Для Delphi следует также заменить команды Assign и Close на AssignFile и CloseFile, соответственно.
Булева функция L проверяет, является ли символ буквой.
Код:
type
  slovo = array [1..60] of String;
var
  f:Text;
  C:slovo;
  D:Char;
  i,N:integer;

function L(Q:Char):boolean;
begin
 L:=((Ord(Q)>64) and (Ord(Q)<91)) or ((Ord(Q)>96) and (Ord(Q)<123));
end;

Begin
 Assign(f,'D:\Sl.txt');
 ReSet(f);
 N:=0;
 Repeat
  if Not(EoF(f)) then
   begin
    Inc(N);
    if N>1 then C[N]:=D else C[N]:='';
    repeat
     if Not(EoF(f)) then
      begin
       read(f,D);
       if L(D) then C[N]:=C[N]+D;
      end;
    until Not(L(D)) or (EoF(f));
    repeat
     read(f,D);
    until (L(D)) or (EoF(f));
   end;
 Until EoF(f);
 Close(f);
 Assign(f,'D:\Smb.txt');
 Rewrite(f);
 for i:=1 to N do
  write(f, C[i][Length(C[i])]+' ');
 Close(f);
End.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 00:09.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.