Отчёт по семинару 2
Описание файла
Документ из архива "Отчёт по семинару 2", который расположен в категории "". Всё это находится в предмете "программирование и алгоритмизация" из 2 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Онлайн просмотр документа "Отчёт по семинару 2"
Текст из документа "Отчёт по семинару 2"
ЗАДАНИЕ 1
Условие
Вычислить, сколько слов встречается в тексте до первой точки.
Состав данных
Имя | Смысл | Тип | Структура |
Исходные данные | |||
text | исходная строка | строковый (char[]) | массив символов размера 1024 |
Промежуточные | |||
l | длина исходной строки | целый | простая переменная |
i | номер рассматриваемого символа | целый | простая переменная |
Выходные данные | |||
count | количество слов до первой точки | целый | простая переменная |
Блок-схема алгоритма
Программа на С++
#include "stdafx.h"
#include <iostream>
int main()
{
setlocale(LC_ALL, "Russian");
char text[1024];
printf_s("Введите строку: ");
scanf_s("%[^\n]s", text, 1024); //считываем строку, включая пробелы
int l = strlen(text); //длина строки
int i = 0; //начнем с 0-го символа
int count = 0; //кол-во слов
while (i < l - 1 && text[i + 1] != '.') //пока не дойдем до конца строки или первой точки
{
if (text[i] == ' ') //если пробел или точка
count++; //одно слово считано
i++;
if (text[i + 1] == '.') //если дальше точка
count++; //то учитываем еще одо слово перед концом цикла
}
printf_s("Слов до первой точки: %d\n", count);
system("pause");
return 0;
}
ЗАДАНИЕ 2
Условие
Для каждой последовательности, А и В, выяснить, какое из слов –первое или последнее – имеет большую длину.
Состав данных
Функция main
Имя | Смысл | Тип | Структура |
Исходные данные | |||
A, B, C | исходная последовательности | строковый (char[]) | массив символов размера 1024 |
Выходные данные | |||
A, B, C | преобразованные последовательности | строковый (char[]) | массив символов размера 1024 |
Имя | Смысл | Тип | Структура |
Исходные данные | |||
a | входная строка | строковый (char*) | массив символов |
Промежуточные | |||
i | номер рассматриваемого символа | целый | простая переменная |
len | длина строки s | целый | простая переменная |
f | длина первого слова | целый | простая переменная |
l | длина последнего слова | целый | простая переменная |
Выходные данные | |||
f | переменная, отражающая результат: 0 – первое слово длиннее 1 – последнее слова длиннее 2 – оба слова одной длины | целый | простая переменная |
Функция first_last_longer
Блок-схема алгоритма
Функция first_last_longer
Функция main
Программа на С++
#include "stdafx.h"
#include <iostream>
//функция, определяющая, первое или последнее слово больше
int first_last_longer(char* a)
{
int f = 0, l = 0; //длины первого и послднего
int len = strlen(a);
//находим длину первого
int i = 0;
while (i < len && a[i] != ' ') //пока не дойдем до конца или не встретим первый пробел
{
i++;
f++;
}
//длину последнего
i = len - 1;
while (i >= 0 && a[i] != ' ')
{
i--;
l++;
}
//сравниваем и выдаем результат
if (f > l) //первое больше - 0
return 0;
else if (f < l) //последнее больше - 1
return 1;
else //равны - 2
return 2;
}
int main()
{
setlocale(LC_ALL, "Russian");
char A[1024], B[1024];
printf_s("Введите строку A: ");
gets_s(A);
printf_s("Введите строку B: ");
gets_s(B);
int resA = first_last_longer(A);
int resB = first_last_longer(B);
printf_s("\nA: ");
if (resA == 0)
printf_s("первое длиннее\n");
else if (resA == 1)
printf_s("последнее длиннее\n");
else
printf_s("первое и последнее одинаковой длины\n");
printf_s("\nB: ");
if (resB == 0)
printf_s("первое длиннее\n");
else if (resB == 1)
printf_s("последнее длиннее\n");
else
printf_s("первое и последнее одинаковой длины\n");
system("pause");
return 0;
}