Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
17.04.2015
Размер:
13.44 Кб
Скачать

Московский Государственный Университет Леса

Лабораторная работа №8.

Программирование на языках высокого уровня

Выполнил: Пантеев В.В.

Проверил: Ларионов Н.В.

Москва 2012.

В темнице там царевна тужит,

А бурый волк ей верно служит;

Там ступа с Бабою Ягой

Идет, бредет сама собой;

Там царь Кащей над златом чахнет;

Ввести текст с клавиатуры или инициализировать массив строк:

Написать программу в виде функций

1. Вывести текст на экран оформив его в красивый арнамент.

2. Подсчитать длины слов в тексте.

3. Подсчитать количество букв 'a' в каждой строке.

4. Упорядочить текст по длине строки по возростанию.

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <stdlib.h>

char strings[10][100];

void find_a();

void ornament();

void bukvy();

void vvod();

void uporyadochenie();

int i = 0;

int main()

{

vvod();

ornament();

printf("\n");

printf("dliny slov v tekste:\n");

bukvy();

printf("\n");

printf("Kolichestvo bukv \'a\' v strokah:\n");

find_a();

printf("\n");

uporyadochenie();

getch();

return 0;

}

void vvod()

{

do {

gets(strings[i]);

i++;

} while(strings[i-1][strlen(strings[i-1])- 1] != '.');

}

void bukvy()

{

int j = 0;

int n = 0;

int ii,len;

for(ii = 0;ii < i;ii++)

{

len = strlen(strings[ii]);

while(j < len)

{

while(strings[ii][j] == ' ') j++;

while(strings[ii][j] != ' ' && j < len)

{

j++;

n++;

}

while(strings[ii][j] == ' ') j++;

printf("%d ",n);

n = 0;

}

printf("\n");

j = 0;

n = 0;

}

}

void ornament()

{

int max_length = 0;

int length = 0;

int n,j,ii = 0;

n = 0;

j = 0;

printf("\n\n");

for(ii = 0;ii < i;ii++)

{

length = strlen(strings[ii]);

if (length > max_length)

max_length = length;

}

for(ii = 0;ii <= max_length + 2;ii++)

printf("*");

printf("\n");

for(ii = 0;ii < i;ii++)

{

printf("*");

strings[ii][strlen(strings[ii]) - 1] = '\0';

printf("%s",strings[ii]);

for(j = 0;j <= max_length - strlen(strings[ii]) - 1;j++)

printf("*");

printf("*\n");

}

for(ii = 0;ii <= max_length + 2;ii++)

printf("*");

printf("\n\n");

}

void find_a()

{

int ii,j = 0;

int n = 0;

for(ii = 0;ii < i;ii++)

{

while(strings[ii][j] != '\0')

{

if (strings[ii][j] == 'a')

n++;

j++;

}

printf("%d\n",n);

j = 0;

n = 0;

}

}

void uporyadochenie()

{

char buffer[100];

char array1[10][100];

int n,j,len,temp;

int array[i];

int ii;

for(ii = 0;ii < i;ii++)

array[ii] = strlen(strings[ii]);

for(n = 0;n < i;n++)

for(j = i - 1;j > n;j--)

if (array[j - 1] > array[j])

{

temp = array[j-1];

array[j-1] = array[j];

array[j] = temp;

strcpy(buffer,strings[j-1]);

strcpy(strings[j-1],strings[j]);

strcpy(strings[j],buffer);

}

for(ii = 0;ii < i;ii++)

printf("%s\n",strings[ii]);

}

Соседние файлы в папке 8 лаба