- •Госы ответы на вопросы спау
- •3. При решении каких задач теории управления может сыграть главенствующая роль теория систем?
- •11. В чем заключается проблема многосвязности автоматизированных систем?
- •19. Нарисуйте блок-схемы обучения искусственной нейронной сети (инс) в системах управления с учителем и стимулируемым самообучением.
- •27. Поясните пример диагностирования частичных отказов измерительных каналов для парового котла.
- •6. Принцип разомкнутого управления. Принцип компенсации. Принцип обратной связи.
- •14. Функциональные модели
- •22. Методы описания и анализа систем управления. Описание и анализ линейных систем с помощью дифференцианых уравнений.
- •3. Концепция scada-систем.
- •30. Управление процессами с помощью эвм и введение в проблему оптимизации.
- •11. Scada-система. Орс. Организация взаимодействия с контроллерами.
- •19. Trace Mode. Экономические модули. Средства разработки приложений.
- •6. Условный оператор. Переключатель.
- •14. Строки как массивы символов. Копирование строк.
14. Строки как массивы символов. Копирование строк.
!!!!
22. Функция main(). Параметры функции main().
Эта строка — заголовок главной функции main(), в скобочках объявлены параметры argс и argv. Так вот, если программу запускать через командную строку, то существует возможность передать какую-либо информацию этой программе, для этого и существуют параметры argc и argv[]. Параметр argc имеет тип данных int, и содержит количество параметров, передаваемых в функцию main. Причем argc всегда не меньше 1, даже когда мы не передаем никакой информации, так как первым параметром считается имя функции. Параметр argv[] это массив указателей на строки. Через командную строку можно передать только данные строкового типа. Указатели и строки — это две большие темы, под которые созданы отдельные разделы. Так вот именно через параметр argv[] и передается какая-либо информация. Разработаем программу, которую будем запускать через командную строку Windows, и передавать ей некоторую информацию.
30. Директивы условной компиляции #if, #ifdef, #ifndef.
Возможно, самыми распространенными директивами условной компиляции являются #if, #else, #elif и #endif. Они дают возможность в зависимости от значения константного выражения включать или исключать те или иные части кода.
В общем виде директива #if выглядит таким образом:
#if константное выражение
последовательность операторов
#endif
Если находящееся за #if константное выражение истинно, то компилируется код, который находится между этим выражением и #endif. В противном случае этот промежуточный код пропускается. Директива #endif обозначает конец блока #if. Например,
/* Простой пример #if. */
#include <stdio.h>
#define MAX 100
int main(void)
{
#if MAX>99
printf("Компилирует для массива, размер которого больше 99.\n");
#endif
return 0;
}
Это программа выводит сообщение на экран, потому что МАХ больше 99. В этом примере показано нечто очень важное. Значение выражения, находящегося за директивой #if, должно быть вычислено во время компиляции. Поэтому в этом выражении могут находиться только ранее определенные идентификаторы и константы, — но не переменные.
Директива #else работает в основном так, как else — ключевое слово языка С: задает альтернативу на тот случай, если не выполнено условие #if. Предыдущий пример можно дополнить следующим образом:
/* Простой пример #if/#else. */
#include <stdio.h>
#define MAX 10
int main(void)
{
#if MAX>99
printf("Компилирует для массива, размер которого больше 99.\n");
#else
printf("Компилирует для небольшого массива.\n");
#endif
return 0;
}
В этом случае выясняется, что МАХ меньше 99, поэтому часть кода, относящаяся к #if, не компилируется. Однако компилируется альтернативный код, относящийся к #else, и откомпилированная программа будет отображать сообщение Компилируется для небольшого массива.
Обратите внимание, что директива #else используется для того, чтобы обозначить и конец блока #if, и начало блока #else. Это естественно, поскольку любой директиве #if может соответствовать только одна директива #endif.
Директива #elif означает "else if" и устанавливает для множества вариантов компиляции цепочку if-else-if. После #elif находится константное выражение. Если это выражение истинно, то компилируется находящийся за ним блок кода, и больше не проверяются никакие другие выражения #elif. В противном же случае проверяется следующий блок этой последовательности. В общем виде #elif выглядит таким образом:
#if выражение
последовательность операторов
#elif выражение 1
последовательность операторов
#elif выражение 2
последовательность операторов
#elif выражение 3
последовательность операторов
#elif выражение 4
.
.
.
#elif выражение N
последовательность операторов
#endif
