Практические / Отчеты студентов 2011-2012 / ВТ-12 ЛР / Федюкин / Федюкин А.А. Строки
.docx
Московский государственный университет леса
Факультет ЭСТ
Кафедра " Вычислительной техники"
Лабораторная работа №8.
Строки.
Студент Федюкин А. А.
Группа ВТ-12
Принял Ларионов Н. В.
Москва 2012
Задание.
И впился комар как раз
Тетке прямо в глаз.
Повариха побледнела,
Обмерла и окривела.
Слуги ,сватья и сестра
С криком ловят комара.
“Распроклятая ты мошка!
Мы тебя!...” А он в окошко,
Да спокойно в свой удел
Через море полетел.
Ввести текст с клавиатуры или инициализировать массив строк:
Написать программу в виде функций
-
Ввести текст на экран оформив его красивым арнаментом.
-
Подсчитать количество прямой речи в тексте.
-
Подсчитать количество точек в каждой строке.
-
Упорядочить текст по длине строки по убыванию.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
void output (int n, char a[][40]);
int rech (int n, char a[][40]);
int point (char a[][40], int i);
void sort (int n, char *a[]);
int main()
{
const int n=10;
int i,r,p;
char mas[n][40]={"I vpilsya komar kak raz",
"Tetke pryamo v praviy glaz.",
"Povariha poblednela,",
"Obmerla i okrivela.",
"Slugi, svatiya i sestra",
"S krikom lovyat komora.",
"<<Rasproklyataya ti moshka!",
"Mi tebya!..>> A on v okoshko,",
"Da spokoino v svoi udel",
"Cherez more poletel."};
char *pmas[]={"I vpilsya komar kak raz",
"Tetke pryamo v praviy glaz.",
"Povariha poblednela,",
"Obmerla i okrivela.",
"Slugi, svatiya i sestra",
"S krikom lovyat komora.",
"<<Rasproklyataya ti moshka!",
"Mi tebya!..>> A on v okoshko,",
"Da spokoino v svoi udel",
"Cherez more poletel."};
clrscr();
output(n,mas);
r=rech(n,mas);
cout<<"\nkol-vo pryamoi rechi = "<<r<<"\n";
for (i=0; i<n; i++)
{
p=point(mas,i);
cout<<"\nkol-vo tochek v stroke "<<i<<" = "<<p;
}
cout<<"\n\n";
sort(n,pmas);
getch();
return 0;
}
void output (int n, char mas[][40])
{
int i;
cout<<"===================================\n";
cout<<"===================================\n";
cout<<"===================================\n";
for (i=0; i<n; i++)
cout<<"*** "<<mas[i]<<"\n";
cout<<"===================================\n";
cout<<"===================================\n";
cout<<"===================================\n";
}
int rech (int n, char mas[][40])
{
int i,j,k=0;
for (i=0; i<n; i++)
{
j=0;
while (mas[i][j]!='\0')
{
if (mas[i][j]=='<')
k++;
j++;
}
}
return(k/2);
}
int point (char mas[][40], int i)
{
int j=0,k=0;
while (mas[i][j]!='\0')
{
if (mas[i][j]=='.')k++;
j++;
}
return (k);
}
void sort (int n, char *pmas[])
{
int i,tmp=1;
char *st;
while (tmp==1)
{
tmp=0;
for (i=0; i<n-1; i++)
if (strlen(pmas[i+1])>strlen(pmas[i]))
{
st=pmas[i];
pmas[i]=pmas[i+1];
pmas[i+1]=st;
tmp=1;
}
}
for (i=0; i<n; i++)
cout<<pmas[i]<<"\n";
}