В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
SashaWest
SashaWest
11.11.2020 15:57 •  Информатика

Как будет это в pascale и блок схема?

Показать ответ
Ответ:
FalleNGoD7
FalleNGoD7
31.08.2021 03:05
Вот исходник. заменишь строку и искомые слова.

/*
*
*   Программа решает задачу:  Дана строка символов. Группы символов,
*   разделенные пробелами (одним или несколькими) и не содержащие пробелы
*   внутри себя, будем называть словами.
*   Заменить в строке слова S на слова W ( S, W - заданы).
*  
*   
*/

//
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

#define bool int
#define true 1
#define false 0

#define MAX(x, y) (((x) > (y)) ? (x) : (y))
#define SPACE ' '

// Подпрограмма определяет, является ли группа символов словом.
bool isWordc (const char*const str, const char*const begin, int len);

//
#pragma argsused
int main(int argc, char* argv[])
{
       
const char*const def_str = "Ехал   грека   через реку , видит грека – в реке рак. Сунул грека  руку в реку, рак за руку греку – цап! рекурсия рукавицы";
const char* S[] =                          { "грека", "реку", "руку", "рак",  "ААА" };
const char* W[sizeof(S) / sizeof(char*)] = { "ААА",   "поле", "ногу", "мышь", "Грека" };
        const int countS = sizeof(S) / sizeof(char*);
        int i, offset, delta, isWord;
        char* pos;
char* str = (char*)malloc(strlen(def_str)+1);
if (!str) return 1;
memcpy(str, def_str, strlen(def_str)+1);

for ( i = 0; i < countS; ++i) {
pos = str;
while ((pos = strstr(pos, S[i])) != NULL) {
// Группы символов, разделенные пробелами, будем называть словами.
                       if (isWordc(str,pos,strlen(S[i])) == true) {
if (strlen(S[i]) != strlen(W[i])) {
                                        // При разной длине - компенсируем разницу, т.е при замене рак на раковина не должны портиться другие данные.
delta = strlen(S[i]) - strlen(W[i]);
if (delta < 0) {
offset = pos - str;
str = (char*)realloc(str, strlen(str) + 1 - delta );
if (!str) return 1;
str[strlen(str) - delta] = '\0';
pos = str + offset;
memmove(pos - delta, pos, strlen(pos));
}
memset(pos, SPACE, MAX(strlen(W[i]), strlen(S[i]))); // Замена "грека" на "АА" = "АА___"
}
strncpy(pos, W[i], strlen(W[i]));
}
pos += strlen(S[i]);
}
}
    free(str);

        return 0;
}
//

//
// Подпрограмма определяет, является ли группа символов словом.
bool isWordc(const char*const str, const char*const begin, int len) {
     bool lhs,rhs;  // ( рак и раковина разные слова.)
     // Приведение к (unsigned char) необходимо т.к. функции isspace и ispunct делают проверку (A>-1 && A<=255).
     lhs = (begin == str); // Исключаем выход за границы.
     lhs = lhs || (isspace((unsigned char) *(begin - 1))  || ispunct((unsigned char) *(begin - 1)));
     rhs =         isspace((unsigned char) *(begin + len))|| ispunct((unsigned char) *(begin + len));
     return lhs && rhs;
}
//
0,0(0 оценок)
Ответ:
тима400
тима400
19.01.2023 05:44
Периметр – это сумма длин всех сторон. Периметр помещения можно узнать, сложив длину всех стен. 
Пример:
Вычислим периметр комнаты размером 5х6 м. Сложим длину всех стен в комнате – и получим 22 м.
Сколько всего полотнищ нужно для оклеивания помещения?
Для этого нужно разделить периметр на ширину рулонов. Это позволит узнать, какое количество обойных полос нужно на помещение. 
Пример:
Периметр нашей комнаты – 22 м, а ширина обоев составляет 1,06 м. Разделим 22 на 1,06 – и получим 20,75. Округляем результат в большую сторону – и получаем 21 полотнище.
На сколько полотнищ хватит одного рулона?
Чтобы посчитать число полных полотнищ в одном рулоне разделим длину рулона на высоту потолка.
Пример:
Длина обойного рулона обычно составляет 10 м. Высота нашей комнаты – 2,75 м. Мастера рекомендуют прибавлять к высоте потолка дополнительный запас в 10 см. для удобства поклейки. Таким образом, значение высоты нашего потолка составит 2,85 м. Если разделить длину рулона (10 м) на это число (2,85 м), то мы получим 3 полных полосы из одного рулона обоев.
Сколько рулонов обоев понадобится? 
Чтобы узнать, сколько рулонов потребуется для одного помещения надо разделить число всех полотнищ в этом помещении на полное число полотнищ, которые получаются из одного рулона.
Пример:
В нашем случае расчет будет таким: 21 (число полотнищ) делим на 3 (полотнища из одного рулона) и получаем 7 рулонов обоев шириной – 1,06 м, длиной – 10 м.

Если вы клеите обои с крупным рисунком, то вам потребуется следить за аккуратной подгонкой полос для ровного совпадения узора. Это актуально для обоев с большими геометрическими рисунками, изображениями растений и других крупных форм. Здесь нужно учитывать раппорт - расстояние, через которое повторяется одинаковый рисунок. Вам необходимо сосчитать, сколько раппортов приходится на одну длину полотнища. Чем крупнее раппорт, тем большее количество рулонов вам потребуется для оклеивания просторных помещений. Размер раппорта указывается на этикетке обоев. На этикетке вы найдете один из указанных 

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота