Практические / Отчеты студентов 2011-2012 / ВТ-12 ЛР / Авшарян / laba8
.docМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА
Факультет электроники и системотехники.
Лабораторная работа № 8
по программированию на языке высшего уровня С
Тема: «Строки»
Выполнил студент: Авшарян Т.М.
ВТ-12
Проверил: Ларионов Н.В.
Москва 2012 г.
1. Условия задания:
С ними дядька Черномор.
«Не тужи, душа моя,
Это чудо знаю я.
Эти витязи морские
Мне ведь братья все родные,
Не печалься же, ступай,
В гости братцев поджидай».
Ввести текст с клавиатуры или инициализировать массив строк:
Написать программу в виде функций
1. Вывести текст на экран оформив его в красивый орнамент.
2. Подсчитать количество предложений в тексте.
3. Подсчитать количество знаков препинания в каждой строке.
-
Упорядочить текст по количеству пробелов в строке по убыванию.
2. Данные: Входящие:
Рабочие: st,probel,k,f
Выходящие: s,p
3. Листинг программы:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
void output (int n, char mas[][30])
{
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 pred (int n, char mas[][30])
{
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);
}
int prep (char mas[][30], int i)
{
int j=0,k=0;
while (mas[i][j]!='\0')
{
if (mas[i][j]=='.'||mas[i][j]=='<'||mas[i][j]=='>'||mas[i][j]==',')
k++;
j++;
}
return (k);
}
void sort (int n, char *pmas[])
{
int i,j,k,f,m=0,probel=0;
char *st;
while (m!=n)
{
for (i=m; i<=n; i++)
{
j=0;
k=0;
while (pmas[i][j]!='\0')
{
if (pmas[i][j]==' ')
k++;
j++;
}
if (k>probel)
{
probel=k;
f=i;
}
}
st=pmas[m];
pmas[m]=pmas[f];
pmas[f]=st;
m++;
probel=0;
}
for (i=0; i<n; i++)
cout<<pmas[i]<<"\n";
}
int main()
{
const int n=7;
int i,s,p;
char mas[n][30]={"S nimi dyadka Chernomor.",
"<Ne tuji, dusha moya,",
"Eto chudo znau ya.",
"Eti vityazi morskie",
"Mne ved bratiya vse rodnie,",
"Ne pechalsya zhe, stupai,",
"V gosti bratzev podjidai>."};
char *pmas[]={"S nimi dyadka Chernomor.",
"<Ne tuji, dusha moya,",
"Eto chudo znau ya.",
"Eti vityazi morskie",
"Mne ved bratiya vse rodnie,",
"Ne pechalsya zhe, stupai,",
"V gosti bratzev podjidai>."};
clrscr();
output(n,mas);
s=pred(n,mas);
cout<<"\n kol-vo predlozhenij = "<<s<<"\n";
for (i=0; i<n; i++)
{
p=prep(mas,i);
cout<<"\nkol-vo znakov prepinaniya v stroke "<<i<<" = "<<p;
}
cout<<"\n\n";
sort(n,pmas);
getch();
return 0;
}