Рабочая тетрадь по МДК 01 02 Прикладное программирование


Министерство образования и молодежной политики Ставропольского края
Государственное бюджетное профессиональное образовательное учреждение «Ставропольский региональный многопрофильный колледж»













РАБОЧАЯ ТЕТРАДЬ

по

МДК 01 02 Прикладное программирование

технический профиль


ДЛЯ СТУДЕНТОВ ОЧНОЙ ФОРМЫ ОБУЧЕНИЯ

















Ставрополь 2015

Одобрено кафедрой программного обеспечения и информационных технологий



Рабочая тетрадь для студентов по междисциплинарному курсу Прикладное программирование








Рабочая тетрадь для студентов по междисциплинарному курсу 01 02 Прикладное программирование является частью основной профессиональной образовательной программы ГБПОУ СРМК по техническим специальностям в соответствии с требованиями ФГОС СПО третьего поколения.
Рабочая тетрадь адресована студентам очной формы обучения.
Рабочая тетрадь содержит задания для закрепления знаний по всем разделам МДК 01 02 «Прикладное программирование».
.





Составитель: Краскова Ольга Владимировна, преподаватель ГБПОУ СРМК, 2015













Содержание


13 TOC \o "1-3" \h \z \u 1413 LINK \l "_Toc336980585" 14Введение 13 PAGEREF _Toc336980585 \h 1441515
13 LINK \l "_Toc336980586" 14Стандартные типы данных и выражения 13 PAGEREF _Toc336980586 \h 1451515
13 LINK \l "_Toc336980587" 14Задания 13 PAGEREF _Toc336980587 \h 1451515
13 LINK \l "_Toc336980588" 14Самостоятельная работа 13 PAGEREF _Toc336980588 \h 1481515
13 LINK \l "_Toc336980589" 14Линейные структуры 13 PAGEREF _Toc336980589 \h 1491515
13 LINK \l "_Toc336980590" 14Задания 13 PAGEREF _Toc336980590 \h 1491515
13 LINK \l "_Toc336980591" 14Самостоятельная работа 13 PAGEREF _Toc336980591 \h 14121515
13 LINK \l "_Toc336980592" 14Разветвляющие структуры. Оператор варианта 13 PAGEREF _Toc336980592 \h 14131515
13 LINK \l "_Toc336980593" 14Самостоятельная работа 13 PAGEREF _Toc336980593 \h 14171515
13 LINK \l "_Toc336980594" 14Циклические структуры 13 PAGEREF _Toc336980594 \h 14181515
13 LINK \l "_Toc336980595" 14Задания 13 PAGEREF _Toc336980595 \h 14181515
13 LINK \l "_Toc336980596" 14Самостоятельная работа 13 PAGEREF _Toc336980596 \h 14241515
13 LINK \l "_Toc336980597" 14Подпрограммы. Процедуры и функции 13 PAGEREF _Toc336980597 \h 14261515
13 LINK \l "_Toc336980598" 14Задания 13 PAGEREF _Toc336980598 \h 14261515
13 LINK \l "_Toc336980599" 14Самостоятельная работа 13 PAGEREF _Toc336980599 \h 14281515
13 LINK \l "_Toc336980600" 14Массивы одномерные 13 PAGEREF _Toc336980600 \h 14301515
13 LINK \l "_Toc336980601" 14Задания 13 PAGEREF _Toc336980601 \h 14301515
13 LINK \l "_Toc336980602" 14Самостоятельная работа 13 PAGEREF _Toc336980602 \h 14321515
13 LINK \l "_Toc336980603" 14Массивы двумерные 13 PAGEREF _Toc336980603 \h 14331515
13 LINK \l "_Toc336980604" 14Задания 13 PAGEREF _Toc336980604 \h 14331515
13 LINK \l "_Toc336980605" 14Самостоятельная работа 13 PAGEREF _Toc336980605 \h 14371515
13 LINK \l "_Toc336980606" 14Строки и символы 13 PAGEREF _Toc336980606 \h 14381515
13 LINK \l "_Toc336980607" 14Задания 13 PAGEREF _Toc336980607 \h 14381515
13 LINK \l "_Toc336980608" 14Файлы 13 PAGEREF _Toc336980608 \h 14401515
13 LINK \l "_Toc336980609" 14Задания 13 PAGEREF _Toc336980609 \h 14401515
13 LINK \l "_Toc336980610" 14Список используемых источников 13 PAGEREF _Toc336980610 \h 14421515
15


Введение

Применение рабочей тетради в обучении улучшает качество образования, повышает эффективность учебного процесса на основе его индивидуализации, появляется возможность реализации перспективных методов обучения. Сложность проектирования занятий заключается в том, что программ специального целевого дидактического назначения мало, и преподавателю приходится использовать в основном те, которые предлагаются для широкого круга пользователей (электронные энциклопедии, справочники) или программы для профессиональной подготовки (компьютерные учебники, моделирующие среды) и адаптировать их к конкретным условиям. Актуальность рабочей тетради заключается в оптимальном сочетании содержания информационной подготовки студентов на занятиях с возможностью выявить направление движения формирования мыслительной деятельности. Рабочие тетради используются для текущего контроля преподавателем знаний и умений студентов применять знания при решении учебных задач. Поскольку учебные пособия содержат пошаговое описание задач, то студент имеет возможность самостоятельно проверить правильность решения задач в рабочих тетрадях. Практическая значимость заключается в применении листов рабочей тетради для облегчения освоения студентами трудной для них, но очень важной дисциплины и в ее личностно-формирующей ориентации.
Разработка по дисциплине «Прикладное программирование» весьма актуальна на нынешний день. Благодаря листам рабочей тетради, можно осуществить более лёгкое усвоение материала, и проверку усвоения этого материала.
В заключении можно отметить, что разработка рабочей тетради является вполне современным способом ведения учебного процесса. Несомненные преимущества налицо: проверка усвоения материала, контроль мыслительной деятельности учащихся, проверка полученных знаний, сами лекции проходят более разнообразно и как следствие этого повышенный интерес аудитории, возможность исправлять ошибки в момент, когда они делаются.









Стандартные типы данных и выражения
Задания

1. Идентификатор Почему он недопустим?
5Summa
Begin
D'Artanyan
Сумма
Summa Dohoda
A*B
Nomer.Doma

2. Зачеркните числа, записанные не по правилам языка C++
1)3.14159 5)16. 9) 12.SE.3
2)150 6)15.0Е-04 10) 12Е+5
3)0,005 7)2.345Е2 11) Л23ЕЗ
4).12345 8) 1.15Е-3 12) 1.15Е-3

3. Подберите подходящий тип данных:
Количество учеников в классе
Площадь круга
Количество автомобилей в регионе
Количество автомобилей у одного владельца__________
Первая буква фамилии
Количество жителей в государстве
Плотность населения в государстве
Произведение цифр двузначного числа __
Произведение цифр трехзначного числа_________________
Фамилия сотрудника фирмы
Заработная плата сотрудника фирмы____________________

4. Записать выражение на языке программирования C++.

13 EMBED Equation.3 1415____________________________________________________

13 EMBED Equation.3 1415__________________________________________________

13 EMBED Equation.3 1415___________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·–
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Определить тип результата, если: X-integer, Y-real, C-char.

Al=sqrt(X) ______ A7=A6A2= sqrt (Y) _______ A8=div(23,4).rem______
A3=2.5*X _______ A9=div(7,2/3).quot______
A4=X-A1 _______ A10=pred(C)______
A5=A4>A3 _______ A11=A8/y
A6=ord(C) _______ A12=chr(X)

6. Найти значение выражения:

25/2= _____________
div(25,2).quot = ___________
div(25,2).rem = __________
15+div(21,2).quot= _________
div(2,3).qout = ____________
div(2,3).rem = ___________
div(11, 5).rem = ___________
div(14, 5 + 3).rem = ___________

7. Записать в виде обычной математической формулы

y=2*sin(x)*sqrt(x+sqrt(abs(x)))_______________________________________

y= sqrt(sin(x)+s
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
· у=a*b*sin(x)_____________________________________________________


8. Выберите для каждого значения наиболее подходящий тип данных из таблиц типов и укажите ниже.

5
'X'
'*'
-5






999
-999
'5'
'-5'






True
False
5.0
-5.0







Самостоятельная работа

Вариант 1

Найти значение выражения:
div(220, div(10,3).rem).quot = ________
div(-16, 11 * 3).rem = __________
div(3, 5+3).quot = __________
(div(16, 6).rem) / (div(2,1).quot) = ______

Записать выражение на языке программирования C++:
13 EMBED Equation.3 1415

Вариант 2
1. Найти значение выражения:
div(220, div(10,3).quot).rem = ________
div(3, 5).quot + 3 = _________
div((-19)+9, -5).qout = ________
div(16, 6).rem / div(2,1).quot = __________
2. Записать выражение на языке программирования C++:
13 EMBED Equation.3 1415
Линейные структуры
Задания

1. Напишите инструкцию вывода на экран:

а) вашего имени ______________________________________________________;
б) числа 400 _________________________________________________________;
в) значения выражения 7,3(3,22+8,61) ____________________________________.

2. Найдите значение S после выполнения следующих операторов:

S=18;
S=8;
S=113;
cout << S;
S=27;
S=S+19;
S=76;
cout << S;
S=3;
S=S+1;
S=S+3;
cout << S;
S=7;
S=S+S;
S=S+S;
cout << S;

_________
_________
__________





3. Расположите в правильном порядке строки программы, вычисляющей периметр и площадь параллелограмма:

1) S=a*h;


2) return 0; }


3) int main() {


4) p=2*(a+b);


5) int a,b,h,p,s;


6) getch();


7) printf(“p=%d s=%s”,p, s);


8) a=6;b=3;h=4;


9) #include


10) #include




4. Дан текст программы в таблице с ошибками:
исправьте ошибки в программе;
что выведется на экран в результате выполнения программы?
Программа с ошибками
Программа без ошибок
На экране будет напечатано:


#incude

itn main()
{
int a,b;
a = 3,5
b = 11;
prnitf(“%d”, a+b;)
return 1;
}





#include (iostream)

int main()
{
int сумма = 0;
int дельта = 1;
y = сумма + дельта;
printf(y);
}





5. Перевести блок-схему вычисление расстояния между точками А и B на язык C++.

















6. Напишите программы для следующих задач, организуя экран пользователя по предложенному варианту.

Задача
Экран пользователя
Программа

1. Написать программу вычисления площади поверхности параллелепипеда. S=2*(A*B+B*C+C*A) (Запустите программу, введите данные: А=9, В=7.5, С=5. Если правильно составлена программа, то вы получите результат S=300.00)
Вычисление S поверхности параллелепипеда.
Введите исходные данные:
Длина (см)? 9
Ширина (см)? 7.5
Высота (см)? 5
Площадь поверхности: 300.00 кв.см.








2. Написать программу вычисления стоимости покупки, состоящей из нескольких тетрадей и карандашей.
Вычисление стоимости покупки.
Введите исходные данные:
Цена тетради (руб.)? 2.75
Количество тетрадей? 5
Цена карандаша (руб.)? 0.85
Количество карандашей? 2
Стоимость покупки: 15.45 руб.










7. Заполните таблицу. Пробел перед числом обозначайте _

Значение
Формат
Вывод

3.14159
3.14159
0.1234
-0.006
25.876
-0.006
***’
*’
3.14159
3.14159
3.14159
-0.006
-0.006
-124.3123
-3.14159
*’
мышь’

%5.2f
%5.3f
%4.2f
%8.3f
%3.1f
%9f
%7s
%7s
________________
________________
____________
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
-3.14Е+00
_ _ _ *
_ _ _ мышь

Самостоятельная работа
Вариант 1
1. Представить результат работы процедуры (по позициям и строкам)
printf (“%d : %10d”, r, a);
printf (“%f %f %9.3f”, s, x, d);
printf (”i =%3d”, i);
printf (“%d %d”, t, d);
printf (“%d”, z).
2. Составить линейный алгоритм вычисления у по формуле:
y= 6x (x + 2) – (x + 4), при x = 2

















Вариант 2
1. Представить результат работы процедуры (по позициям и строкам)
printf (“%d %10.3f”, y, d);
printf (“Введите %3d”, k);
printf (“%d %f %d”, y, t, a);
printf ('”При к = %f, %d, %d”, k, s, g);
printf (“%3f, %d”, s, d).
2. Составить линейный алгоритм вычисления у по формуле:
y = 3x – (2x + 1), при x =3















Разветвляющие структуры. Оператор варианта
Задания

1. Отметьте те выражения, результат которых вычислен правильно:

60>20 = =true
! (30> 10) ==false
(3>2) && (5>6) == true
(60>70) ||(100<90) = =true
(60>70) &&(100<90) = =true.

2. Предположим А=5; B=10; C=15.
Вычислите значение выражения (true, false):

Выражение
Результат
Выражение

Результат




(А=В) ||(A<=B)

!(A>=5)


(А=В) &&(A<=B)

(С=А+В) ||(B>C)


!(A=B) &&(A
(С<=А-В) || (B

(В<=12)||(С=15)

(С<=А+В) || (B>C)


(B<=12)&&(C=15)

(С=А+В) &&(B


3. Запишите логическое выражение для каждой из фраз:

А принадлежит диапазону (18; 80)___________________________________
А принадлежит диапазону [18; 80) __________________________________
А принадлежит диапазону (-10; 18) __________________________________
А принадлежит диапазону [-10; 18] _________________________________
А не принадлежит диапазону [-10; 18]_______________________________
А не принадлежит диапазону (-10; 18) _______________________________
А меньше -1 или больше 1_________________________________________
А не принадлежит диапазону [18; 80) _______________________________
А больше 0 и не равно 10__________________________________________
А кратно 4 и 5 (используйте div(n,m).rem)__________________________________

4. Запиши словесное описание фрагмента алгоритма на языке C++:

Если число Х равно 47, то увеличить переменную Х на 15, иначе уменьшить на 36;
_________________________________________________________________
Если переменная S не равна 21, то увеличить переменную S в 6 раз, иначе уменьшить на 53;
_________________________________________________________________
Если переменная U нечетная, то увеличить ее на 8, иначе увеличить в 53 раза;
_________________________________________________________________
Если число Z больше 48, то увеличить на 51, иначе уменьшить на 51;
_________________________________________________________________
Если X меньше 15, то Y присвоить значение X/2, а Z присвоить значение 15/ X, иначе Y присвоить значение X*2, а Z присвоить значение 15- X.
__________________________________________________________________

5. Расставь строки программы в правильном порядке, чтобы получилась программа, которая находит решение уравнения ах=b:

1) printf(решения нет’)


2) float a,x,b;


3) if(a!=0) {


4) printf(“x=%f”,b/a);


5) a!=0


6) {


7) cin>>a>>b;


8) }


9) else


10) #include


11)#include


12)return 0;


13)int main()



6. Что будет выведено на экран, после выполнения данной программы:



·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·se
printf(“%d”, n*5);
return 0; }


Ответ: __________

Ответ: __________

Ответ: __________

Ответ: __________




7. Заполните таблицу:
x
y
a

19
10


6
44


100
49


55
22



int main() {
int a, x, y;
cin>>c>>y;
if (x+y>50 || y>100)
a=x+y;
else
a=2*x+y;
printf(“%d”, a);
return 0;}
8. Представьте фрагмент программы в виде блок-схемы

а)
if (a>b)
k=k+l ;
else
{
if (b>c);
k=k+2;
}
else
k=k+3;
printf(“%d”,k);



б)
if(a==0)
{
X=l;
Y=l;
}
else
{
X=2;
Y=2;
}





в)
if(a==b)
z=a+b ;
else
{
if (a>0)
a=2*a;
a=a-l; b=b-l;
z=a/b;
}
z=z+10;


9. Запишите оператор IF, эквивалентный следующему оператору switch.

switch(x)
{
case 2.5 : printf('Ничья'); break;
case 7.11: printf ('Выигрыш') ; break;
Default:
printf('Проигрыш');
break;
}


10. Определить, что будет выведено на экран после выполнения фрагмента программы:




k=10;
switch(div(k,3).rem)
{
case 0: printf(“k=4m”);
break;
case 1: printf(“k=4m+l”);
break;
case 2: printf(“k=4m+2”);
break;
ca
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Запишите оператор switch, эквивалентный следующему оператору IF.

.
if (x>=a || x<=b)
printf (“Хорошо”)
else
if(x == d || x == f)
printf(“Плохо”)
else
printf (“Неверный ввод”);
.

12 . Составьте программы для следующих задач:


Задачи


Отметка

Дано число х. х2+1, если х <0
Вычислить значение функции: У= x-2,1,если х>13 QUOTE 1415
Sin x, если 013 QUOTE 1415х13 QUOTE 1415




По введенному году обучения в школе (числу от 1 до 11) вывести сообщение «Привет, k-классник!». Например, если k=1, «Привет, первоклассник!»





Самостоятельная работа

Вариант 1
1. Какое значение будет иметь переменная d после выполнения операторов при a = 3, b = 1, d = 0:

1) if (a>b) d=a; else d=b; d=d*10 _______________________________________;

2) if (a>b) d=b; d=d*10 _______________________________________________;

3) if (a>b) d=b; d=d+a; else d=d*10 _____________________________________;

4) if (a>2) if (b>2) d=1; else d=2; d=d*10 ____________________________.

Составить блок-схему и программу вычисления значения функции:

13 EMBED Equation.3 1415


Вариант 2
1. Какое значение будет иметь переменная d после выполнения операторов при a = 2, b = 5, d = 4:

1) if (a > b) d = a; else { d = b; d= d – a; } _____________________

2) if (a < b) d = b; d = d + a; ______________________________________

3) if (a > b) d = a; else { d = b; d = d + a; } d= 2 * d; _____________

4) if (d > b || d < a ) d = b; else d = a; d = d + c; __________________

2. Составить блок-схему и программу вычисления значения функции:

13 EMBED Equation.3 1415

Циклические структуры
Задания

1. Запишите заголовки цикла For для изменения параметра из диапазонов:

от -10 до +10_______________________________________________
от 100 до 1_________________________________________________
от 15 до 25_________________________________________________
от -10 до -20_______________________________________________

2. Запишите оператор цикла For, который бы выводил все числа в диапазоне от 100 до 10 включительно:
____________________________________________________________________________________________________________________________________________
______________________________________________________________________



3. Определить, сколько раз выполнится цикл:


int I = 4;
while(i<6)
i=i+3;

int y=1;
int i=1;
while(i>1) y=y+1/i;

int i=5;
int y=1;
while(I >2)
{
i=i-1;
y=y+i*i;
·
}


__________________
_______________________




4. Определить значение переменной S после выполнения следующих команд и заполнить таблицу:
..
cin >> n;
n
s

5


6


20


int s=3;
int i=1;
while(i<=n)
{
s=s+i;
i=i+5;
}
print(“%d”,s);
.

5. Составьте блок-схему по готовой программе.

int main()
{
float a,s;
S=0;
A=0.2;
while(a<=2)
{
s=s+a;
a=a+0.1;
}
printf(Сумма=%15.2f’, s);
return 0;
}



6. Определите значение переменной a после выполнения фрагмента алгоритма:
13 EMBED Word.Picture.8 1415




7. Выполните трассировку и определите значение переменной S и I после выполнения фрагмента программы.

int s=0;
int i=0;
do {
i=i+5;
} while (i<=5);
s=s+i*i;
s _____________
i _____________
Тело цикла выполняется ____ раз
i
s
i<=5?







8. Определите сколько раз будет выполняться тело цикла:

int s=0;
int i=0;
do {
i=i-1;
s=s+1/i;
} while(I<=1);
int s=0;
int i=1;
do {
i=i+1;
} while(i>2);
s=s+1/i;

int s=0;
int i=1;
do {
s=s+1/i;
i=i+1;
} while(i<1);

_____________
_______________




9. Расставьте строки программы в правильном порядке, чтобы получилась программа, которая находит сумму первых N натуральных чисел:

1) printf(“sum=%d”,sum);


2) }


3) sum=sum+i; i=i+1;


4) sum=0; i=1;


5) while (i<=n) {


6) int i,n,sum;


7) printf(“n=”); cin >> n;



10 .Определите сколько раз будет выполняться тело цикла:

int S=0;
for(int n=4; n>= 3; n--) {
S=S+n;
S=S*10;
}
int Y=0;
for(int n=4; n<= 6; n++) {
Y=Y+n;
Y=Y/10;
}
int Y=1;
for (int i=1; i<=3;i++) {
Y=Y+1;
Y=Y+i;
}
int Y=5;
for (int n=1; i>=4; i--)
Y=Y+n;

________________
________________
_________________




11. Сопоставьте фрагменту программы с циклом while соответствующий ей фрагмент программы с циклом For:


for(int i=1; i <=5;i++)
s=s+5;


while (Y<10) {
S=S+5;
Y=Y+1;
}


for (int i=5; i>=1;i--)
S=S+5;


int I=5;
while(I>=1) {
S=S+5;
I=I-1;
}


int K=3;
for(int i=K; i<=n;i++)
S=S+5;


int I=1;
while(I<=5 ){
S=S+5;
I=I+1;
}


For(int i=y; y<10;i++)
S=S+5;



int I=3;
while (i<=n) {
S=S+5;
I=I+1;
}



12. Выполните трассировку (пошаговое выполнение алгоритма вручную на бумаге). Определите значение переменной Х после выполнения фрагмента программы.



int X=10;
for(int I=1; i<=5; i++)
{
printf (“%d %d”I,X);
X=X-2;
}

X ____________

I
X
Экран
результата











13. Составить программу по блок-схеме:



14. Исправьте синтаксические ошибки в следующем фрагменте программы:

float I, K, S;
K=81;
S=4;
for(int i=1;i<=K;i++)
S=S/2
б)
float a;
int s;
s=10;
s=s+2;
for (int s=1; i<=10;i++)
printf(“%d”,s);


Самостоятельная работа
Вариант 1
Составить циклический алгоритм вычисления произведения всех чисел от 25 до 40.
















2. Определить значение переменной n после выполнения следующих элементов программы:
int y=0;
int x=10;
while (x>0) {
x=x+2;
y=y+x;
}

Ответ: ______________________________

Вариант 2
Составить циклический алгоритм вычисления среднеарифметического значения всех четных чисел от 0 до 20.
















2. Определить значение переменной n после выполнения следующих элементов программы:
int x=0;
int y=5;
do {
y=2*y;
x=x+y;
} while(y>5);

Ответ: ______________________________

Массивы одномерные
Задания

1. Определите количество элементов в массиве:

int A[5];
____________

float C[13];
____________

int K[19];
____________

float A[8];
____________

int d[11]
____________


2. Какие из приведенных описаний массивов являются правильными?

int a[-20];
float a[0];

int size = 10;

int mass[size];
const int size = 5;
int mass[size];


Записать циклы для решения следующей задачи:

Ввод 112 элементов массива В с клавиатуры. Параметром цикла является переменная h. Нумерация начинается с 1.

_______________________________________________________________


Ввод 96 элементов массива А в столбец. Параметром цикла является переменная h. Нумерация начинается с 1.

_______________________________________________________________


Формирует массив Е из 162 случайных чисел, принадлежащих промежутку [15;30]. Параметром цикла является переменная Х.Нумерация начинается с 1

_______________________________________________________________


Формирует массив D из 179 случайных чисел, принадлежащих промежутку [16;24]. Параметром цикла является переменная f. Нумерация начинается с 1

_______________________________________________________________


3. Напишите пропущенные команды. Ввести массив В, из 18 элементов целого типа, заданных случайным образом на промежутке [12;65], нумерация начинается с 0 и вывести элементы массива с 0-го по 6-й в столбец.
int main() {
___________________;
for (int j=1; ______ )
_________________________
for (int j=1; _____ )
_________________________
return 0;
}

7. Дан массив К. Индексы начинаются с 0.

К
2
5
18
26
12
11
21


Чему равно?
K[6]=___________
K[4]+K[1]=_______
2+K[6]=_________
K[1+2]=_________
K[5]+10=________
10*K[4]=________


Самостоятельная работа
Вариант 1
Изменить программу нахождения суммы элементов массива таким образом, чтобы:
1) массив состоял из 15 элементов вещественного типа;
2) значения элементов массива должны меняться в интервале от 0 до 5;
3) в результате выполнения программы должно быть найдено произведение всех элементов массива, а не их сумма.
#include
#include
#include
const int n=10;
int a[n];
int s;

int main() {
printf(“Исходный массив:”);
for(int i=0; i a[i]=rand() % 10;
printf(“a[%d]=%d\n”, i, a[i]);
}
s=0;
for(int i=0; i s=s+a[i];
printf(“Сумма всех элементов массива S=%d”,s);
}





Вариант 2
1. Изменить программу нахождения произведения элементов массива таким образом, чтобы:
1) массив состоял из 20 элементов целого типа;
2) значения элементов массива должны меняться в интервале от 8 до 27;
3) в результате выполнения программы должно быть найдено сумма всех элементов массива.
#include
#include
#include
const int n=10;
float a[n];
float s;

int main() {
printf(“Исходный массив:”);
for (int i=0;i a[i]=rand () % 10;
printf(“a[%d]=%f\n”, i, a[i]);
}
s=0;
for(int i=0; i s=s*a[i];
printf(“произведение всех элементов массива S=%f”,s);
}





Массивы двумерные
Задания

1. Значения двух массивов А[100] и В [100] задаются с помощью следующего фрагмента программы:
.
for(int n=0; n<100;n++)
A[n]=n-100;
for(int n=0; n<100;n++)
B[n]=A[n]*n
.
Сколько элементов массива В будут иметь положительные значения?
Ответ: _________________

2. Напишите пропущенные команды. Ввести массив D, из 138 элементов целого типа, нумерация начинается с 0 и заменить не четные элементы на число 496. Вывести элементы массива после замены.

#include
#include
________________________;
int f;
int main() {
for(int j=0;_________) {___________________________}
for(int j=0; ________ ) {___________________________}
if(________________) {___________________________}
for(int f=0; ________) {___________________________}
return 0;
}
Как выглядит массив А, состоящий из 4 строк и 5 столбцов, если А(I,j) = i*j ?

2) 3)
1
1
1
1
1

2
2
2
2
2

3
3
3
3
3

4
4
4
4
4


1
2
3
4
5

1
2
3
4
5

1
2
3
4
5

1
2
3
4
5


1
2
3
4
5

2
4
6
8
10

3
6
9
12
10

4
88
12
16
20




Определите значения следующих элементов массива:

1
3
5
7
9

2
4
6
8
10

11
13
15
17
19

12
14
16
18
20

21
23
25
27
29

22
24
26
28
30

A[1,5]=_____ ,
A[5,1]=_____ ,
A[6,4]=_____ ,
A[4,5]=_____ ,
A[2,3]=_____ ,
A[4,2]=_____ ,
A[3,2]=______.
Определите месторасположение элементов со следующими значениями:
A[ ..,..]= 17, A[..,..]= 29, A[ .. ..,..]= 30,
A[..,..]= 16, A[ ....,..]= 1, A[..,..]= 27.
Значения двумерного массива задаются с помощью вложенного оператора цикла в представленном фрагменте программы. Чему будет равно значение B(2,4)?
..
for(int n=0;n<5;n++)
for(int k=0; k<5;k++)
B[n,k]=n+k;
..
Ответ: ______________________











Дан фрагмент программы, обрабатывающей двухмерный массив A размера
nЧn. Выберите правильный ответ, когда данный алгоритм меняет местами:

int k=0;
for(int i=0; ic=A[i,i];
A[i,i]=A[k,i];
A[k,i]=c;
..

1)
два столбца в таблице

2)
две строки в таблице

3)
элементы диагонали и k-ой строки таблицы

4)
элементы диагонали и k-го столбца таблицы


6. Задана целочисленная квадратная матрица со значениями, показанными на рисунке:

1
2
3

1
1
1
1

2
1
1
1

3
1
1
1






Определить значения, которые будут содержаться во всех элементах матрицы, после выполнения следующего фрагмента:

int s,i,j;
int A[3][3];
..................
for (int i=0;i<3;i++) {
s:=0;
for(int j=2; j>=0;j--) {
s=s+a[i,j];
a[i,j]=s;
}
}
..................

7. Укажите, что будет напечатано в результате выполнения следующей программы:

int a[3][3];

int main() {
for(int i=2; i>=0;i--)
for(int j=0; j<3;j++)
if (j > i) a[i,j]=10 * i + j;
else a[i,j]=10 * i - j;
for(int i=0; i < 3;i++)
{
for(int j=0; j<3;j++)
printf (“%d ”,a[i,j]);
printf(“\n”);
}
return 0;
}

Ответ,:______________________


8. Отгадай кроссворд:













3

















2






4








1























 2
 








 
 

























1
















































































































По горизонтали:
Символическое имя переменной.
Испытание работоспособности программы.

По вертикали:
Порядковый номер элемента массива.
Пронумерованная последовательность однотипных величин.
Команда записанная на языке программирования.
Постоянная величина.
Самостоятельная работа
Вариант 1
Укажите, что будет напечатано в результате выполнения следующей программы:
int a[3, 3];
int main() {
for(int i=0; i<3;i++)
for(int j=2; j>=0;j++)
if (i > j)
a[i,j]=10 * i + j;
else
a[i,j]=10 * i - j;
for(int i=0; i<3;i++)
{
for(int j=0;j<3;j++)
printf (“%d ”, a[i,j]);
printf (“\n”);
}
return 0;
}

Ответ:


Вариант 2

1. Укажите, что будет напечатано в результате выполнения следующей программы:
int a[3][3];
int main() {
int i=0;
while(i<=3)
{
for(int j=0; j < 3;j++)
{
a[i,j]=10 * i - j;
printf (“%d ”a[i,j]);
}
i=i+1;
printf(“\n”);
}
return 0;
}

Ответ:


Подпрограммы. Процедуры и функции

Задания

1. Какое из следующих описаний процедуры, выводящей строку символов (*), свободно от ошибок:


int main() {
int s = 78;
for(int s=1; s <= 78;i++)
printf(“*”);
return 0;
}


int main() {
int s = 0;
for(int s=1; s <= 78;i++)
printf(“*”);
return 0;
}


int main() {
int s;
for(int s=1 s <= 78;i++)
printf(“*”);
return 0;
}



Ниже представлены заголовки процедуры и функции, а также обращения к процедуре и функции.
void Proc(int x, int y,int &z);
int Func1(int a, int b);
Proc(k, l, m);
H=Func1(I, j);

Укажите соответствие между представленными ниже наборами параметров этих подпрограмм(слева) и названиями разновидностей параметров(справа).
X, y, a, b

1.Параметры-переменные

X, y, z, a, b

2.Параметры-значения

K, l, m, I, j

3.Формальные параметры

z

4.Фактические параметры


Какое определение верно, либо ложно:
1.Вложение подпрограмм не допускается.


2.После раздела описаний процедуры следует ее тело, содержащее последовательность операторов, заключенных в операторные скобки.


3.Передача информации из тела программы в процедуру осуществляется с помощью механизма параметров.


4.Имена, объявленные в основной программе, доступны во всех описанных в ней подпрограммах.


5. Параметр-значение просто передает некоторое значение в подпрограмму.


6. Передача значений из процедуры в программу осуществляется с помощью параметров-переменных.


7. В C++ наличие в теле подпрограммы оператора вызова самой себя не допускается.



4. Напишите, что выведет на экран следующая программа:

#include
#include
int A,B;

void F1(int X, int Y);
{
Y=2*X+3;
}

void F2(int &X, int &Y);
{
Y=3*X+1;
}

int main() {
A=1;
B=3;
F1(A,B);
printf (“A=%d B=%d', A, B);
F2(A,B);
printf(“A= %d B=%d”, A,B);
return 0;
}

5. Напишите, что напечатает следующие программы:

int a,b,c,d;
int func(int x, int y, int z);
{
int w;
w=x+y;
if (y return w;
}

int main() {
int a=5;
int b=4;
int c=2;
d=func(a,b,c); printf(“func от %d%d и %d, даёт %d”, a, b, c, d);
a=func(b,c,d); printf(“func от %d%d и %d дает %d”, a, b, c, a);
}
Самостоятельная работа

Вариант 1

1. Напишите программу, которая по значениям двух катетов вычисляет гипотенузу, площадь, прямоугольного треугольника (используя подпрограмму).























2. Напишите, что выведет на экран следующая программа:
#include
#include
#include
int A,B;

void F1(int &X, int &Y)
{
Y=pow(X, 2);
X=pow(X, 2)+X;
}

void F2(int &X, int Y);
{
Y=pow(X, 2);
X=po2(X, 2)+X;
}

int main() {
A=1;B=3;
F1(A,B); printf(“A=%d B=%d\n”, A, B);
F2(A,B); printf(“A=%d B=%d”, A, B);
return 0;
}


Вариант 2

1. Написать программу сравнения площадей и периметров двух прямоугольных треугольников, если заданы их катеты (используя подпрограмму).





















2. Напишите, что выведет на экран следующая программа:
#include
#include
#include
float A,B,A1,B1;

void SD(float X, float Y, float &P, float &Q);
{
P=(X+Y)/2; Q=(X-Y)/2 ;
}

int main() {
A=2; B=-4;
SD(A,B,A1,B1);
printf(“A= %4.0f B= %4.0f A1=%4.0f B1=%4.0f”, A,B,A1,B1);
SD(A,B,B1,A1);
printf (“A= %4.0f B= %4.0f A1=%4.0f B1=%4.0f”, A,B,A1,B1);
SD(B,A,A1,B1);
printf (“A= %4.0f B= %4.0f A1=%4.0f B1=%4.0f”, A,B,A1,B1);
Return 0;
}

Строки и символы
Задания

1. Запишите условие истинное, если:
1) в записи фамилии «Соколенко» встречается буква «л»;
________________________________________________________________________
в записи фамилии «Соколенко» не встречается буква «л»;
________________________________________________________________________
в записи фамилии «Соколенко» встречается буква «я»;
________________________________________________________________________
в записи фамилии «Соколенко» не встречается буква «я»;
_______________________________________________________________________
в записи фамилии «Соколенко» встречается буква «н», но не встречается буква «у»;
_______________________________________________________________________
слово а длиннее слова b;
_______________________________________________________________________

Укажите, какие из указанных ниже выражений допустимы в C++:
char a[20]; char b[100]; string str1; string str2;
1) str1 + str2;
2) strlen(a)*2 + str1;
3) strlen(a)+strlen(str1.c_str());
4) a+b
5) strcpy(a,b);
6) strcpy(a,str1)
7) strcpy(str1.c_str(), str2.c_str());
8) str2.push_back(str1.append(a).c_str());
9) str1.insert(0, “Start”):
10) str2.insert(str2.size()-1;str1);
11) (str1.clear()).c_str()[20]

Запишите оператор, проверяющий:
является ли заданный символ строчной гласной буквой русского алфавита.
____________________________________________________________
является ли заданный символ согласной буквой русского алфавита (заглавной или строчной).
____________________________________________________________
является ли заданный символ цифрой.
____________________________________________________________

Из слова 'понедельник', используя функции строковых данных, получите слово 'плодик'.
____________________________________________________________


Файлы
Задания
1. Файл t1.dat был создан программой
#include

int main()
{
FILE * pFile;
char mystring [100];

pFile = fopen ("myfile.txt" , "r");
if (pFile == NULL) perror ("Error opening file");
else {
if ( fgets (mystring , 100 , pFile) != NULL )
puts (mystring);
fclose (pFile);
}
return 0;
}

Можно ли заменить char mystring[100]; на std::string mystring?
____________________________________________________________
Можно ли изменить пятую запись этого файла? ________________________
А вставить за пятой записью новую, не переписывая файла? ____________________


Исправьте ошибку в программе
#include

int main ()
{
FILE * pFile;
int n = -5;
pFile = fopen ("myfile.txt");
if (pFile==NULL) perror ("Error opening file");
else
{
while (fgetc(pFile) = EOF) {
++n;
}
if (feof(pFile)) {
puts ("End-of-File reached.");
printf ("Total number of bytes read: %d\n", n);
}
else puts ("End-of-File was not reached.");
fclose (pFile);
}
return 0;
}



.



Список используемых источников

Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования: Учебное пособие. - М: Форум: Инфра-М, 2012.
Семакин И.Г. Основы программирования: Учебник для сред. Проф. Образования – 5-е изд., стер. – М.: Эпштейн Издательский центр «Академия», 2013.
Павловская Т.А. Программирование на языке высокого уровня: Учебник для вузов – Спб.; Питер, 2013.
Рапаков, Г.Г. C++ для студентов и школьников / Г.Г. Рапаков, С.Ю. Ржеужкая. – СПб.: БХВ-Петербург, 2012. – 352 с.
Моргун, А.Н., Кривель И.А. Программирование на языке C++. Основы обработки структур данных / А.Н. Моргун, И.А. Кривель. – М.: Издательский дом «Вильямс», 2013. – 576 с.





















13 PAGE \* MERGEFORMAT 14915


13 PAGE \* MERGEFORMAT 144015



Начало

Ввод А(х1,y1) и (x2,y2)


S=13 EMBED Equation.3 1415

Печать S

Конец



Root EntryEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeEquation NativeЎ: 15Times New Roman
нет

да

a := 1 b := 0


b := b + 1 a := a * 2

b = 4