Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Структуры и функции. Указатели на структуры.
6.9. Верны ли следующие утверждения: a) к структурам одного типа применима операция присваивания; b) к структурам одного типа, не содержащим вложенных структур, применима операция сравнения (выполняется почленное сравнение); c) параметром функции может быть указатель на структуру, но не сама структура; d) параметры функции – структуры передаются по значению; e) результатом работы функции может быть структура; f) результатом работы функции может быть указатель на структуру; g) функция sizeof(struct any) выдает результат, равный сумме длин всех полей этой структуры; h) к структурам применима операция взятия адреса;
6.10. Перечислить все операции, применимые к структурам.
6.11. Пусть точка на плоскости описана следующим образом: struct point { int x; int y; } Верно ли решена задача: «описать функцию, которая присваивает значение структуре типа struct point» a) void assign_to_point (struct point p, int a, int b) { p.x = a; p.y = b; } b) void assign_to_point (struct point *p, int a, int b) { (*p).x = a; (*p).y = b; } c) void assign_to_point (struct point *p, int a, int b) { *p.x = a; *p.y = b; } d) void assign_to_point (struct point *p, int a, int b) { p -> x = a; p -> y = b; }
6.12. Пусть точка на плоскости описана следующим образом: struct point { int x; int y; } Верно ли решена задача: «описать функцию, которая создает точку из двух целых чисел» a) struct point create_point (int a, int b) { struct point p; p.x = a; p.y = b; return p; } b) struct point *create_point (int a, int b) { struct point p; p.x = a; p.y = b; return & p; } c) struct point *create_point (int a, int b) { struct point *pp; pp -> x = a; pp -> y = b; return pp; } d) struct point *create_point (int a, int b) { struct point *pp; pp = (struct point *) malloc(sizeof(struct point)); pp -> x = a; pp -> y = b; return pp; }
6.13. Пусть точка на плоскости описана следующим образом: struct point { int x; int y; } Описать функцию, которая по трем точкам, являющимися вершинами некоторого прямоугольника, определяет его четвертую вершину;
6.14. Описать в виде структуры a) точку на плоскости; b) цветную точку на плоскости; c) комплексное число; d) рациональное число. Разработать совокупность операций для данных этого типа; реализовать каждую из них в виде функции.
6.15. Пусть «целочисленная» окружность на плоскости описана следующим образом: struct point { int x; int y; }; struct circle { int radius; struct point center; }; Пусть есть массив struct circle plane [50], содержащий информацию об окружностях на плоскости. Описать функцию, определяющую a) есть ли среди этих окружностей хотя бы две концентрические окружности; b) есть ли среди этих окружностей хотя бы две вложенные (не обязательно концентрические) окружности; c) есть ли среди этих окружностей три попарно пересекающихся окружности; d) есть ли среди этих окружностей хотя бы одна «уединенная», т.е. не имеющая общих точек ни с какой другой окружностью массива plane.
6.16. Пусть результаты анализа некоторого текста, состоящего из английских слов, содержатся в следующем частотном словаре dictionary: #define MAXSIZE 1000 #define LENGHT 20 /* максимальная длина слова */ struct elem { char * word; struct info *data; }; struct info { int count; /* количество повторений слова в данном тексте */ char *alias; /* синоним данного слова */ }; struct { struct elem *tabl [ MAXSIZE]; int number; /* количество слов в словаре */ } dictionary; Каждое слово (word) встречается в словаре только один раз; синонимы (alias) могут быть одинаковыми у разных слов. Описать функцию, определяющую a) встречается ли данное слово в этом словаре: результат – указатель на соответствующий элемент либо NULL: 1) слова неупорядочены по алфавиту; 2) слова упорядочены по алфавиту; b) какое слово чаще других встречается в анализируемом тексте; если таких слов несколько, то взять первое по алфавиту; результат работы функции – указатель на соответствующий элемент: 1) слова неупорядочены по алфавиту; 2) слова упорядочены по алфавиту; c) на каждую ли букву латинского алфавита в этом словаре найдется хотя бы одно слово: 1) слова неупорядочены по алфавиту; 2) слова упорядочены по алфавиту; d) на какие буквы (букву) латинского алфавита в этом словаре больше всего слов; результат работы функции – указатель на строку, составленную из этих букв, перечисленных в алфавитном порядке: 1) слова неупорядочены по алфавиту; 2) слова упорядочены по алфавиту; e) есть ли в словаре различные слова, имеющие одинаковые синонимы.
6.17. Пусть результаты анализа некоторого текста содержатся в частотном словаре (см. предыдущую задачу). Описать функцию a) struсt elem *add_word (char * word, char *alias), вставляющую новое слово и информацию о нем в словарь dictionary (предполагается, что такого слова в словаре еще нет, оно первый раз встретилось в тексте); 1) слова неупорядочены по алфавиту; 2) слова упорядочены по алфавиту; Результат работы функции – указатель на вставленный элемент. b) struсt elem *update_word (char * word, char *alias), изменяющую значение синонима для данного слова (предполагается, что такое слово в словаре обязательно есть); 1) слова неупорядочены по алфавиту; 2) слова упорядочены по алфавиту; Результат работы функции – указатель на элемент словаря, где изменено значение синонима. c) struct elem *delete_word (char *word), удаляющую данное слово из словаря; результат работы функции – указатель на структуру, содержащую информацию об удаленном слове либо NULL, если такого слова нет в словаре; 1) слова неупорядочены по алфавиту; 2) слова упорядочены по алфавиту;
6.18. Программа. Определить число вхождений каждого служебного слова в данную программу на Си. Тщательно продумать способ представления информации о служебных словах.
6.19. Допустимо ли в Си? Если " да" - опишите семантику этих действий, объясните, что будет напечатано; если " нет" - объясните почему. #include < stdio.h> struct data { char *s; int i; struct data *dp; }; main() { static struct data a[ ] = { { " abcd", 1, a+1 }, { " efgh", 2, a+2 }, { " ijkl", 3, a } }; struct data *p = a; int i; printf(" a[0].s=%s p -> s=%s a[2].dp -> s=%s\n", a[0].s, p -> s, a[2].dp -> s); for (i = 0; i < 2; i++) printf(" --a[i].i=%d ++a[i].s[3]=%c\n", --a[i].i, ++a[i].s[3]); printf(" ++(p-> s)=%s\n", ++(p-> s)); printf(" a[(++p) -> i].s=%s\n", a[(++p) -> i].s); printf(" a[--(p -> dp -> i)].s=%s\n", a[--(p -> dp -> i)].s); } 6.20. Пусть struct s { int k; float *f; char *p[2]; }; struct s *ps; Верно ли присвоено значение переменной ps и всем объектам, с ней связанным: char str[5] = “abcd”; ps = (struct s *) malloc(sizeof(struct s)); (*ps).k = 5; ps -> f = (float *) malloc(sizeof(float)); *(ps -> f) = 3.1415; (*ps).p[0] = (char*) malloc(5*sizeof(char)); (*ps).p[1] = (char*) malloc(10*sizeof(char)); (*ps).p[0] = str; (*ps).p[1] = “abcdefghi”;
6.21. Присвоить значение переменной q и всем объектам, с ней связанным: struct data { double **p; char *s; int *a[2]; }; struct data *q; 6.22. Присвоить значение переменной a и всем объектам, с ней связанным: struct b { double *q; int * (*p)[2]; }; struct b **a[1]; 6.23. Присвоить значение переменной x и всем объектам, с ней связанным: struct r { double *a[3]; char **s; union { int i; float f; } u; } struct r x[2]; 6.24. Присвоить значение переменной x и всем объектам, с ней связанным: struct a { char ***s; char (*p)[2]; }; typedef struct a * data; data x[2]; 6.25. Присвоить значение переменной pt и всем объектам, с ней связанным: struct t { int **pi; double (*k)(double, int*); char *p[2]; }; struct t *pt; 6.26. Присвоить значение переменной a и всем объектам, с ней связанным: struct data { int *i; int (*f)(int); char **s; }; struct data a[2];
|