Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-й семестр / Ответы на некоторые теоретические и практические вопросы.docx
Скачиваний:
36
Добавлен:
26.01.2020
Размер:
58.85 Кб
Скачать

Программная инженерия ответы на билет (код)

1) Компилятор — программа или техническое средство, выполняющее компиляцию.

Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера). Входной информацией для компилятора (исходный код) является описание алгоритма или программа на предметно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).

2) While - цикл с предусловием. В этом цикле сначала проверяется условие, а уже потом выполняются операции.

Общий вид:

while (Условие) {

БлокОпераций;

}

Конструкция dowhile - цикл с постусловием. В нём сначала проводятся операции, а уже потом проверяется условие, по этому цикл будет выполнен по крайней мере 1 раз.

Общий вид:

do {

БлокОпераций;

} while (Условие);

3) Найти сумму отрицательных элементов в массиве из 10 элементов

#include <stdio.h>

int main() {

int Mas[10];

int i,s;

s=0;

for (i=0; i<10; i++) {

scanf("%i",&Mas[i]);

}

for (i=0; i<10; i++) {

if (Mas[i]<0){

s=s+Mas[i];

}

}

printf(«\n%i\n",s);

return 0;

}

4) Входные данные - величины, которые задаются до начала работы алгоритма или определяются динамически во время его работы. Входные данные берутся из определенного набора объектов.

5) Конструкция swich

switch (переменная) {

case Константа1:

БлокОпераций;

break;

case Константа2:

БлокОпераций;

break;

default:

БлокОпераций; //Будет выполнен, если переменная не равна ни одной из констант

break;

6) Найти произведение Элементов массива из 10, находящиеся между максимумом и минимумом (программа учитывает макс и мин при вычислениями, а также проверяет корректность данных - если минимум встретился раньше максимума она выведет ошибку).

#include <stdio.h>

Int main() {

int Mas[10];

int i,maximum,minimum,s;

for (i=0; i<10; i++) {

scanf("%i",&Mas[i]);

}

minimum=0;

maximum=0;

for (i=0; i<10; i++) {

if (Mas[i]<Mas[minimum])

minimum=i;

if (Mas[i]>Mas[maximum])

maximum=i;

}

s=1;

if (minimum>maximum) {

for (i=maximum; i<=minimum; i++) {

s=s*Mas[i];

}

printf("\n%i\n",s);

}

else printf("Вычисление невозможно так как минимум встречается раньше максимума\n");

return 0;

}

7) Высокоуровневый язык программирования — язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.

8) Стек – это структура данных, в которой элементы поддерживают принцип LIFO (“Last in – first out”): последним зашёл – первым вышел. Или первым зашёл – последним вышел.

9) Вычислить произведение элементов массива с чётными номерами (под номером подразумевается индекс в массиве с 0)

#include <stdio.h>

Int main() {

int Mas[10];

int i,s;

for (i=0; i<10; i++) {

scanf("%i",&Mas[i]);

}

s=1;

for (i=0; i<10; i=i+2) {

s=s*Mas[i];

}

printf("\n%i\n",s);

return 0;

}

10) Абстракция - введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.

11) Исправьте и поясните ошибку

#include <stdio.h>

Int main()

{

int numb;

printf (“Введите целое число \n”);

scanf (“%d”, &i); //Ошибка: адресация на необъявленную переменную i!

/*Исправление*/ scanf("%d",&numb)

printf (“число равно %f \n”, numb);

return 0;

}

12) Найти сумму положительных элементов в массиве из 10 элементов

#include <stdio.h>

Int main() {

int Mas[10];

int i,s;

s=0;

for (i=0; i<10; i++) {

scanf("%i",&Mas[i]);

}

for (i=0; i<10; i++) {

if (Mas[i]>0){

s=s+Mas[i];

}

}

printf(«\n%i\n",s);

return 0;

}

13) Алгоритмом называется точное и понятное предписаниe исполнителю совершить последовательность действий, направленных на решение поставленной задачи.

14) В структуре выбора принимают участие операторы ветвления if, if .. else, switch.

If else

if (Условие) {

БлокОпераций;

}

else {

БлокОпераций;

}

Если при ложном условии ничего делать не надо, то else писать не нужно.

Switch рассмотрен выше.

15) см номер 9

16) Нисходящее проектирование - это проектирование сверху вниз, и оно характеризуется противоположной последовательностью выполнения процедур.

17)Напишите все, что выведет программа на экран :

#include <stdio.h>