- •1.Пример выполнения упражнения тренинга на умение 1 Задание
- •2.Пример выполнения упражнения тренинга на умение 2 Задание
- •3.Пример выполнения упражнения тренинга на умение 3 Задание
- •4.Пример выполнения упражнения тренинга на умение 4 Задание
- •5.Пример выполнения упражнения тренинга на умение 5 Задание
- •6.Пример выполнения упражнения тренинга на умение 6 Задание
- •7.Пример выполнения упражнения тренинга на умение 7 Задание
- •8.Пример выполнения упражнения тренинга на умение 8 Задание
- •9.Пример выполнения упражнения тренинга на умение 9 Задание
- •Int Vs(char *s,char *sl, int Mdl);
9.Пример выполнения упражнения тренинга на умение 9 Задание
Дан текст. Слова в тексте разделяются символами пробела (‘ ’) или табулирования (‘\t’). Текст заканчивается символом начала новой строки (\n) или символом окончания строки (‘\0’), а его длина – не более 80 символов.Требуется: Соcтавить программу выдачи из текста всех слов и определение слова наибольшей длины.
1. Дано: SL – множество слов в заданном текстеTОпределить: Lmax = max strlen ( sli ) sliSL i=1,…N
strlen ( sli ) –длина словаsl
2. Алгоритм обработки текста разработаем, считая, что будем использовать программу выделения слов, рассмотренную в разделе 2.3. и функцию выделения слова –Vs
Начало ввести текст T Lmax =0 l=0 p=T цикл по просмотру символов текста по l и указателю p до конца текста если обнаружено начало слова то выделить очередное слово (SLOVO) и определить его длину (Lt) напечатать SLOVO l=l + Lt p=p +Lt если Lt > Lmax то Lmax = Lt копировать SLOVO в SLMax конец_если иначе l=l+1 p=p+1 конец_если конец_цикла по просмотру символов выдать SLMax
3. Напишем основную программу: # define n 81
Int Vs(char *s,char *sl, int Mdl);
void main ()
{ char SLOVO[n],T[n], SLMax[n];
int l,Lmax,Lt;
char *p;// указатель для просмотра символов текста Т
clrscr();
printf( "Введите текст:\n");
gets(T);
puts("Вы ввели текст: ");
puts(T);
Lmax=0;
p = T;
l=0;// переменная для обозначения номера символа текста // и проверки максим. доп. границы (l <n)
while (*p!='\n'&&*p!='\0'&&l<n)
{
if (*p!= ' '&& *p!='\t')
{
Lt=Vs(SLOVO,p,n);
puts(SLOVO);
if (Lt > Lmax)
{ Lmax = Lt;
strcpy (SLMax,SLOVO);
}
p+=Lt;
l+=Lt;
}
else
{l++;
p++;
}
}
printf ("Слово максимальной длины:\n");
puts(SLMax);
getch();
}
4. Окончательно оформим программу
# include <stdio.h>
# include <conio.h>
# include <string.h>
# define n 81
int Vs(char *s,char *sl, int Mdl);
void main ()
{ char SLOVO[n],T[n],SLMax[n];
int l,Lmax,Lt;
char *p;
clrscr();
// p=text;
printf( "Введите текст:\n");
gets(T);
puts("Вы ввели текст: ");
puts(T);
Lmax=0;
p = T;
l=0;
while (*p!='\n'&&*p!='\0'&&l<n)
{
if (*p!= ' '&& *p!='\t')
{
Lt=Vs(SLOVO,p,n);
puts(SLOVO);
if (Lt > Lmax)
{ Lmax = Lt;
strcpy (SLMax,SLOVO);
}
p+=Lt;
l+=Lt;
}
else
{l++;
p++;
}
}
printf ("Слово максимальной длины:\n");
puts(SLMax);
getch();
}
int Vs(char *s,char *sl, int d)
{int i,N;
N=0;
while (*sl!=' '&& *sl!='\0'&&*sl!='\t'&&*sl!='\n')
{*s=*sl;
s++;
sl++;
N++;
}
for(i=N;i<d;i++)
{*s='\0';
s++;
}
return N;
}