Программная инженерия ответы на билет (код)
1) Компилятор — программа или техническое средство, выполняющее компиляцию.
Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера). Входной информацией для компилятора (исходный код) является описание алгоритма или программа на предметно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).
2) While - цикл с предусловием. В этом цикле сначала проверяется условие, а уже потом выполняются операции.
Общий вид:
while (Условие) {
БлокОпераций;
}
Конструкция do…while - цикл с постусловием. В нём сначала проводятся операции, а уже потом проверяется условие, по этому цикл будет выполнен по крайней мере 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>