Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите со строками на Pascal'e, Помогите со строками на Pascal'e 
:(
    Опции темы
World
Дата 23.6.2005, 00:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Люди помогите плиз а то у мне эти лабы с экзаменами спать уже месяц не дают.
{Заранее спасибо!}


Рассматривается непустая строка, содержащая 80 символов.
Каждый символ строки может быть малой английской буквой,
цыфрой или одним из знаков +,-,*. Группой букв будет называться
такая совокупность последовательно-расположенных
букв, которой непосредственно не препятствует и за которой
не следует буква. Аналогично определяется группа знаков и цыфр.
Требуется написать программу, которая выясняет, верно ли,
что в данной строке больше групп цыфр, чем групп знаков.
Если в строке нет ни одной группы цыфр, но есть хотя
бы одна группа знаков, то число групп цыфр полагается равным нулю.
если в троке нет ни одной группы цыфр, но есть хотя бы одна группа
знаков, то число групп полагается равным нулю. Если в строке нет ни
одной группы знаков, цыфр, то напечатать сообщение: В строке нет ни
одной группыцыфр и не одной группы знаков.
(Исходная строка вводится с клавиатуры)

  Вверх
TP@MB@Y
Дата 23.6.2005, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 18.12.2004
Где: Москва

Репутация: нет
Всего: 4



World
Заводишь три множества: буквы, цифры и разделители
Код

type
        bukvi = ('a'..'z');
        cifri = ('0'..'9');
        separ = ('*','-','+');
var a:bukvi; b:cifri; c:separ;


Дальше просматриваем входную строку посимвоьно. Делаем функцию.

Код

function group(s:string):integer;
var i,k:integer;
begin
 for i:=1 to length(s) do
 begin
  if s[i] in a then //что то делаем =)
  if s[i] in b....
  ....
 end;
end;


Вот принцип. Полностью написать алгоритм - щас мозги не варят. Надо ввести пру флагов и счетчик. И организовать их взаимодействие.
PM   Вверх
Zlo
Дата 23.6.2005, 03:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.9.2004

Репутация: нет
Всего: 1



World
Последюю часть задания я что-то неочень понял!
Но сделал прогу которая считает количество групп знаков и цифр.
С тебя пиво незабудь!
Вот прога:
Код

Program stroki;
Uses CRT;
const
  cifra:string='0123456789';
  bykva:string='qwertyuiopasdfghjklzxcvbnm';
  Znak:string='+-*';
  nachaloGrc:Boolean=false;
  nachaloc:Boolean=false;
  nachaloGrz:Boolean=false;
  nachaloz:Boolean=false;
  GrypCifr:integer=0;
  GrypZnakov:integer=0;
Var
  i,c,b,z:integer;
  s:string;
begin
    s:='ekev2615461dfvf5f+-+-+****f8d-f-84';
    CLRSCR;
    {Readln(s);}
        For i:=1 to Length(s) do begin
            for c:=1 to 10 do begin
                    if s[i]=cifra[c] then begin
                    if (nachaloc=false) {and (nachaloGRc=false)} then begin
                           nachaloc:=true;
                           nachaloGRc:=true;
                        end;
                        if nachaloz=true then begin
                           nachaloz:=false;
                           GrypZnakov:=GrypZnakov+1;
                        end;
                        end;
                end;
                
                for b:=1 to 26 do begin
                    if s[i]=bykva[b] then begin
                    if nachaloc=true then begin
                           nachaloc:=false;
                           GrypCifr:=GrypCifr+1;
                        end;
                        if nachaloz=true then begin
                           nachaloz:=false;
                           GrypZnakov:=GrypZnakov+1;
                        end;
                        end;
                end;
                
                for z:=1 to 3 do begin
                    if s[i]=znak[z] then begin
                    if (nachaloz=false) {and (nachloGRz=false)} then begin
                           nachaloz:=true;
                           nachaloGRz:=true;
                        end;
                        if nachaloc=true then begin
                           nachaloc:=false;
                           GrypCifr:=GrypCifr+1;
                        end;
                        end;
                end;
    end;
        {================================================}
    Writeln(s);
        Writeln('Групп цифр:',GrypCifr);
        Writeln('Групп знаков:',GrypZnakov);
    readkey;
        {===============================================}
end.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0406 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.