Контрольная работа №3. «Начала программирования»
Вариант 1.
1. Какой оператор используется для ввода данных в языке программирования Pascal?
2. В языке программирования Pascal для организации цикла используются операторы for, while и repeat. При применении которого (или которых) из них заранее точно известно число повторений цикла?
3. Определите значение переменных а и b после выполнения фрагмента программы:
а := 10
b := 110
b := 110 + b/a
a := b/11*a
b := a mod 100
4. Было произведено девять запусков программы:
var s, t: integer;
begin
readln(s);
readln(t);
if (s < 4) or (t < 4)
then writeln('YES')
else writeln('NO')
end.
при которых в качестве значений переменных s и t вводились следующие пары чисел:
(5, 4); (5, 6); (–2, 1); (5, 8); (7, 8); (–5, 5); (–2, 2); (4, 3); (3, –8).
Выпишите пары чисел, при которых программа напечатала «NO»?
5. Запишите число, которое будет напечатано в результате выполнения программы.
var s, n: integer;
begin
s := 78;
n := 0;
while n < 12 do
begin
s := s – 8;
n := n + 2
end;
writeln(s)
end.
#include <iomanip>
#include <cstdlib>
#include <ctime>
template <typename T>
void swap(T &a, T&b)
{
T t=a;
a=b;
b=t;
}
void printArray(int *array, int length)
{
for (int i=0;i<length;i++)
std::cout<<std::setw(4)<<array[i];
std::cout<<std::endl;
}
int main()
{
srand(time(0));
int length;
std::cin>>length;
int *array=new int[length];
for (int i=0;i<length;i++)
array[i]=rand()%100+1;
printArray(array,length);
int posMax=0;
for (int i=1;i<length;i++)
if (array[posMax]<array[i])
posMax=i;
bool flag=false;
while (flag==false)
{
flag=true;
for (int i=posMax+2;i<length;i++)
if (array[i]<array[i-1])
{
flag=false;
swap(array[i],array[i-1]);
}
}
printArray(array,length);
return 0;
}