Uploaded by Georgy Komaristov

ЛАБинформатикаАБАВ

advertisement
Федеральное агентство связи
О.И.Моренкова
Л.Ф.Лебеденко
Т.И.Парначева
ИНФОРМАТИКА
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ СИ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
К ЛАБОРАТОРНЫМ РАБОТАМ
Новосибирск
1
ВВЕДЕНИЕ
В ходе выполнения лабораторных работ студенты должны приобрести
теоретические знания в области программирования и навыки разработки
несложного программного обеспечения на конкретном алгоритмическом
языке. В процессе решения задач студенты должны правильно выбирать и
описывать типы данных, изучить синтаксис и правильно использовать
операторы алгоритмического языка, освоить работу с такими структурами
данных, как массивы, разрабатывать программы с использованием базовых
вычислительных структур.
В данном руководстве предлагается 11 лабораторных работ, посвященных
изучению базовых конструкций языка Си (условия, циклы и функции) и
способов хранения и обработки данных (массивы, структуры).
2
Лабораторная работа №1
ЭТАПЫ СОЗДАНИЯ
ПРОГРАММЫ
ИНТЕГРИРОВАННОЙ СРЕДЕ Visual Studio
В
Методические указания к лабораторной работе
Процесс обработки программы включает в себя следующие основные
этапы: редактирование текста, компиляцию текста в машинный код,
компоновку программы и ее выполнение.
Программа на языке С++ – это текст. С помощью произвольного текстового
редактора программист записывает инструкцию, в соответствии с которой
компьютер будет работать, выполняя данную программу.
Для того чтобы компьютер мог выполнить программу, написанную на языке
С++, ее нужно перевести на язык машинных инструкций. Эту задачу решает
компилятор. Компилятор читает файл с текстом программы, анализирует ее,
проверяет на предмет возможных ошибок и, если таковых не обнаружено,
создает исполняемый файл, т.е. файл с машинными инструкциями, который
можно выполнять.
Откомпилировав программу один раз, ее можно выполнять многократно, с
различными исходными данными.
Компилирование и выполнение программ в среде Visual Studio
Visual Studio представляет собой интегрированную среду
программирования, т.е. объединяет текстовый редактор, компилятор,
отладчик и еще ряд дополнительных программ.
1. В среде Visual Studio прежде всего необходимо создать новый
проект.
1.1 Для этого нужно выбрать в меню Файл атрибут Создать/Проект.
1.2 Появится новое диалоговое окно. Из списка Типы проектов для
Visual C++
выберите Win32, а из шаблонов
Консольное
приложение Win32.
1.3 Затем следует набрать имя проекта в поле Имя (например, test) , в
котором будут храниться все файлы, относящиеся к данному
проекту. После этого нажмите кнопку "ОК".
1.4 На экране появится пустой файл.
3
2.
В окне редактирования наберите текст программы, выделенный
тоном.
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
printf("Privet!\n");
return 0;
}
2. Для компиляции выберите в меню Построение команду
Построить решение.
В нижней части экрана появятся сообщения компиляции. Если Вы
получили сообщение компилятора об ошибках, двойной щелчок
мышью по строке-сообщении об ошибке переведет курсор в окне
текстового редактора на соответствующую строку кода.
4
После исправления всех ошибок и повторной компиляции система
выдаст сообщение об успешной компиляции и компоновке (пока мы
не будем уточнять, просто вы увидите сообщение Linking).
3. В главном меню выбрать пункт Отладка - Запустить без
отладки
На экране монитора появится консольное окно, и в нем будет
выведены результаты работы программы.
Программа выполнена и лишь ожидает нажатия произвольной клавиши,
чтобы закрыть консольное окно.
Проанализируйте полученные в результате выполнения программы
результаты и сделайте вывод о том, что рассчитывает данная
программа.
4. В среде Visual Studio создайте еще новый проект
В окне редактора наберите текст программы.
#include "stdafx.h"
#include "math.h"
int _tmain(int argc, _TCHAR* argv[])
{
float х, у, z;
// описание переменных
printf(“Расчет значений функции двух переменных\n”); /*вывод заголовка */
printf(“***************\n”);
x= -l;
// начальное значение x - параметра внешнего цикла
while (х<=1) // запуск внешнего цикла, пока х≤ 1
{
printf(“x=%6.1f \n”, x); //вывод значения x
for( y=0; y<=1; y=y+0.1) //запуск внутреннего цикл, управляемого
параметром
y */
{
z=sin(x) + cos(y);
// вычисление функции
printf(“y= %6.1f z=%6.1f\n”, y, z); // вывод результатов
}
printf(“***************\n”);
x=x + 0.5;
// изменение параметра х на шаг 0.5
}
return 0;
}
Получите результаты расчетов по данной программе.
5
5. Учимся редактировать текст
1. Замените в команде вывода результатов printf форматы
на %6.4f
2. повторите расчеты и проанализируйте новое окно вывода.
3. Замените в команде вывода результатов printf форматы
на %6.4d
%6.1f
%6.1f
4. повторите расчеты и проанализируйте новое окно вывода.
5. Измените у параметра x шаг 0.5 на 1.
6. повторите расчеты и проанализируйте новое окно вывода.
6. Составьте отчет о проделанной работе.
Содержание отчета
1. Номер и тема лабораторной работы.
2. Текст программы и этапы обработки ее в среде Visual Studio.
3. Результаты расчетов программы.
Показать отчет преподавателю.
Контрольные вопросы
1. Что такое компиляция?
2. Как провести компиляцию?
3. Для чего предназначен текстовый редактор?
4. Как запустить программу на выполнение?
Лабораторная работа № 2
ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ
Цель работы: Получить навыки программирования линейных алгоритмов
на языке Cи.
Подготовка к лабораторной работе
При подготовке к лабораторной работе следует повторить назначения
основных этапов обработки программы в интегрированной среде Visual
Studio, а также изучить структуру программы на языке Си, запись основных
стандартных функций, правила записи выражений на языке Си, назначение
и формат оператора присваивания, операторы ввода/вывода.
6
Задание к лабораторной работе
Написать программу на языке Си для расчета значений заданной функции.
Функцию выбирать в соответствии с вариантом ( полученным от преподавателя) из
таблицы 1.
Варианты заданий
Таблица 1
№
вар.
1.
2.
3.
Функция
Исходные данные
C= at 2 Ln(t ) + at + eat Cos (t )
t =0.5
d= a x + a 2 x + Ln(ax) + x
x=0.7
a вводят с клавиатуры
2
1 .5 x
y= `1.5 cos x + ba
− ax
X
a=2.0
a=2.3 b=1.8
x вводят с клавиатуры
4.
b= e
5.
x
b
f= Sin +   − e x
a a
6.
g=
7.
n= Ln( x + b
8.
x2 +1
a
2
m= ax + +
x
Sinx
x=1.2 a= -3.1
p= πx + Tg ( x + b x ) + ax 3
x=0.8
a вводят с клавиатуры
Cos ( ax ) + 3 x − a
x
9.
2
π
x
2
+ a x + Ln( ax)
q=
10.
Cosx
1 + a 2 + Sin 2 x
11.
r= aeax Ln a 
x 
12.
c=
13.
x − a ) + ax
d=
1
sin + b
x=1.5 a=2.5
a=0.3 b=3.5
x вводят с клавиатуры
x=0.1 a=2.4
x=0.5 a=1.0 b=1.3
a=0.2
x вводят с клавиатуры
π
a
X=
a sin( x) Ln(a )
d +a
a вводят с клавиатуры
a=7.5 b=1.8
x вводят с клавиатуры
Ln ( ax 3 + b)
e x+1
15
x=1.9 a=2 b=1.1
7
14.
15
16.
17.
18.
19.
y= 0.24 Ln(ax) + aLn 2 x
f= Sin (ax) + 3Cos 2 (ax 2 )
2x 
2
Cos a
 b 
Ln( ax )
n=
+ a+x
Ln( x + 1)
g= xLn
 a 2
 + Cos (a + x)

1
a


p= Ln
x=0.25 a=0.125
a=0.3
x вводят с клавиатуры <1.2
x
b
x
r=   Cos 2
a
x=2.0 a=0.4 b=1.3
a
20.
k= 0.5 x(1 + ax)0.2
21.
t= Cos (ax) + 3Sin 2 (ax3 )
22.
u= xLn
23.
d=
24.
k= Tg 
25.
a=0.3
x вводят с клавиатуры
x=0.25 a=1
a=0.3 b=0.05
x вводят с клавиатуры
2x  2
 Sin b
 а 
Tg ( ax )
+
Ln( x + 1)
a=2.1
x вводят с клавиатуры
x=0.25 a=1.5
a=0.3 b=0.5
x вводят с клавиатуры
a+x
 b 2
 + Sin(bx)

1
b


x=0.25 a=0.125
b=0.5
x вводят с клавиатуры <1.2
x
a
x
o=   cos3
b
b
x=2.5 a=0.4 b=1.3
Порядок выполнения работы.
1. Получить допуск к работе у преподавателя (показать домашние
заготовки).
2. Загрузить среду Visual Studio.
3. Ввести текст программы.
4. Провести отладку программы. Выполнить программу, провести
анализ результатов и убедившись в правильности решения,
предъявить их преподавателю для проверки.
5. Занести результаты расчета в отчет.
6. Выйти из среды.
Содержание отчета
1.
2.
3.
4.
5.
Номер и тема лабораторной работы.
Задание к лабораторной работе.
Схема алгоритма решения задачи.
Программа на языке Си.
Результаты выполнения программы.
8
Показать отчет преподавателю.
Контрольные вопросы
1. Типы данных, применяемые в языке Си.
2. Запись основных стандартных функций.
3. Оператор присваивания в языке Си.
Лабораторная работа № 3
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
Цель работы: Получить навыки программирования простых циклических
процессов на языке Си.
Подготовка к лабораторной работе
1. Повторить назначения основных этапов обработки программы на
языке С++ в среде Visual Studio.
2. Повторить назначение и форматы операторов цикла.
3. Изучить
разделы
учебного
пособия
«ОСНОВЫ
ПРОГРАММИРОВАНИЯ НА С++», стр. 65-70.
Задание к лабораторной работе
Написать программу на языке Си для расчета таблицы значений заданной
функции. Функцию выбирать в соответствии с вариантом из таблицы 2.
Варианты заданий
Таблица 2
№
вар.
Функция
|A+COS (BT) |
1.
Y=e
2.
Y = 0.5 x(1 + ax)0.2
|A+M |
3.
Y=e
4.
C=2X+Y
5.
T= Sin3(X)+AX
Изменение аргумента
A=-0.5 ; В=2
T изменяется от 2 до 5 с шагом 0,5
А=3.5
X изменяется от 1 до 10 с шагом 1
A=2,5 ;
М изменяется от 1 до 10 с шагом 1.
X= 0,5;
Y изменяется от 1 до 8 с шагом 0,5
X=2;
A изменяется от 10 до 20 с шагом 2
9
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
В=2,5
T=e
-3
А изменяется от 2 до 5 с шагом 0,5
A=0,2;
3
R=Tg (A +C)
С изменяется от 0,4 до 2,4 с шагом
0,4
Если А=0,2
2
3
X=Ln (A +C )
С изменяется от 2 до 5 с шагом 0,5
Если А=0.4 ; B=1.3;.
b
x
X изменяется от 0.1 до 1.0 с шагом
L= ( ) x + Cos 2
a
a
0,1
X= 5;
4
T=Sin (AX)
A изменяется от 10 до 30 с шагом 5
X=2;
A
S=X +Tg(AX)
A изменяется от 10 до 20 с шагом 2
В=2
3
K=Sin(B +A)
А изменяется от 0,2 до 1,6 с шагом
0,2
A=0,2;
AC
2
D = 4 - Sin (A+C)
С изменяется от 0,7 до 2,1 с шагом
0,3
Если А=-2 ; В=5; С=7.
B
2
3
F=|Cos (A+B )|-X
X изменяется от 2 до 5 с шагом 0,5
X= 1,5; A=0,2;
AX
Z=|e -Y |
Y изменяется от 1 до 3 с шагом 0,5
A=0,5;
3
Y
L=Sin (Y)+A
Y изменяется от 1 до 10 с шагом 1
| A+B|
Z=e
-SIN (AB)
A=2;
B изменяется от 5 до 8 с шагом 0,5
3
2
K=Ln(N +M )-Tg(NM) N=2.5;
M изменяется от 0,2 до 1,2 с шагом
0,2
AX
3
H=2 -Cos (A+X)
A=1,1
X изменяется от 0,1 до 1 с шагом 0,1
A
5
3
S=|Sin (X )|-X
A=3
X изменяется от 0,5 до 2,5 с шагом
0,5
X= 1.5;
AX
T=Sin(AX)+ 2
A изменяется от 0.1 до 2.0 с шагом
0.5
X=2;
A изменяется от 10 до 20 с шагом 2
R= XA +Tg(XA)
В=2
3
G=Sin(B+A)+ A
А изменяется от 0,2 до 1,6 с шагом
0,2
A=0,2;
|A+B|
A
10
24.
25.
W = 4AC - Sin(A+C)+ С изменяется от 0,7 до 2,1 с шагом
eAX
0,3
Если А=-2 ; В=5; С=0.7.
2C
F=Cos(A+BX)- X
X изменяется от 2 до 5 с шагом 0,5
Порядок выполнения работы.
1. Получить допуск к работе у преподавателя (показать домашние
заготовки).
2. Загрузить среду Visual Studio.
3. Ввести текст программы.
4. Провести отладку программы. Выполнить программу, провести
анализ результатов и убедившись в правильности решения,
предъявить их преподавателю для проверки.
5. Занести результаты расчета в отчет.
6. Выйти из среды.
Содержание отчета
1. Номер и тема лабораторной работы.
2. Задание к лабораторной работе.
3. Схема алгоритма решения задачи.
4. Программа на языке Cи.
5. Результаты выполнения программы.
Показать отчет преподавателю.
Контрольные вопросы
1. Типы данных, применяемые в Си.
2. Схема простого циклического процесса
3. Операторы цикла в языке Си, особенности их использования.
Лабораторная работа № 4
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ ПРОЦЕССОВ
Цель работы: Получить навыки программирования простых циклических
процессов , содержащих разветвляющийся блок в теле цикла.
Подготовка к лабораторной работе
1. Повторить назначения основных этапов обработки программы на
языке С++ в среде Visual Studio.
11
2. Повторить назначение и форматы операторов цикла.
3. Изучить
разделы
учебного
пособия
ПРОГРАММИРОВАНИЯ НА С++», стр. 50-59.
«ОСНОВЫ
Задание к лабораторной работе
Написать программу на языке Си для расчета таблицы значений заданной
функции. Функцию выбирать в соответствии с вариантом из таблицы 2.
Варианты заданий
Таблица 3
№
вар.
1.
Функция
Y=e|A+COS (BT) |
,
Y= Sin3(Т)+AТ,
Т≥0
2.
Изменение аргумента
если Т<0
A=-0.5 ; В=2
T изменяется от -2 до 5 с шагом 0,5
если
X=2.4 ; В=2
T= Sin (X)+AX , если А≤0
3
А изменяется от -10 до 10 с шагом 2
T=e|A+COS (XB) |, если А>0,
3.
b
x
L= ( ) x + Cos 2
a
a
x<0.5
.если
если
L =xb+Tg(ax),
х≥0.5
4.
D=|e -Y |,
AC
если С≤0
D = 4AC- Sin2(A+C),
если С>0
5.
Z=|eAX-Y |,
а=2,5 ; b=1.3
х изменяется от 0.1 до 1 с шагом 0.1.
Y= 0,5; A=0.2
С изменяется от -0.7 до 2.1 с шагом
0,3
X=1.5; A=0.2
Y изменяется от -1 до 3 с шагом 0.5
если Y≤0
Z = 4AY- Sin2(A+Y),
если Y>0
6.
B
2
3
F=|Cos (A+B )|-X ,
если В≤0
X=2,5; A=2;
B изменяется от -5 до 8 с шагом 0,5
F=e | A+B| -SIN (AB),
если В<0
12
7.
A=-2; B=5;
X изменяется от 2 до 5 с шагом 0,4
F=e | A+B| -SIN (AX),
если Х≥3
F=|CosB(A+B2)|-X3,
если Х<3
8.
Если N=2.2; X=2.3
A изменяется от -0.2 до 1.2 с шагом
0.2
K= XA +Tg(XA),
если А≥0
K=Ln(N3 +A2)-Tg(NA),
если А<0
9.
10.
11.
3
2
R=Ln(N +A )-Tg(NA),
если А<0
R= XA +Tg(XA),
если А≥0
Если X=0.4 ; N=1.3;.
A изменяется от -10 до 20 с шагом 2
X= 5;
если A изменяется от 10 до 30 с шагом 5
4
T=Sin (AX),
А<20
T=XA+Tg(AX),
А>=20
если
В=2
K=Sin(B +A)-C, если A=0,2;
С изменяется от 0,7 до 2,1 с шагом
С<1
0,3
AC
2
K = 4 - Sin (A+C),
если С>=1
3
12
B
2
3,
F=|Cos (A+B )|-X
если X<1
Если А=-2 ; В=5; Y=7.
X изменяется от 2 до 5 с шагом 0,5
F=|eAX-Y | если X>=1
13
3
Y,
L=Sin (Y)*B+A
если B<6
A=0,5;
Y=2;
B изменяется от 5 до 8 с шагом 0,5
L=e | A+B| -SIN (AB),
если B>=6
13
14.
.
K=Ln(N3
+M2)- N=2.5;
Tg(NM), если M<1
M изменяется от 0,2 до 1,2 с шагом
0,2
AX
3
K=2 -Cos (A+X+M), A=1,1
X=1.7
если M>=1
15
S=|SinA(X5)|-X3,
A<1
если X = 2,5
A изменяется от 0.1 до 2.0 с шагом
0.5
S=Sin(AX)+ 2AX, если
A>=1
16
X=2;
R= XA +Tg(XA), если В=2
А изменяется от 0,2 до 1,6 с шагом
A<1
0,2
G=Sin(B+A)+ X3, если
A>=1
17
W =4AC Sin(A+C)+ eAX, Если А=-2 ; В=5; С=0.7.
X изменяется от 2 до 5 с шагом 0,5
если X<3
W=Cos(A+BX)если X>=3
X2C,
Порядок выполнения работы.
1. Получить допуск к работе у преподавателя (показать домашние
заготовки).
2. Загрузить среду Visual Studio.
3. Ввести текст программы.
4. Провести отладку программы. Выполнить программу, провести
анализ результатов и убедившись в правильности решения,
предъявить их преподавателю для проверки.
5. Занести результаты расчета в отчет.
6. Выйти из среды.
Содержание отчета
1. Номер и тема лабораторной работы.
2. Задание к лабораторной работе.
14
3. Схема алгоритма решения задачи.
4. Программа на языке Cи.
5. Результаты выполнения программы.
Показать отчет преподавателю.
Контрольные вопросы
4. Типы данных, применяемые в Си.
5. Схема простого циклического процесса
6. Операторы условные в языке Си, особенности их использования.
ЛАБОРАТОРНАЯ РАБОТА №5
РАСЧЕТ ЗНАЧЕНИЙ ФУНКЦИИ ДВУХ ПЕРЕМЕННЫХ.
Цель работы: Закрепить навыки программирования вложенных
циклических процессов.
Подготовка к выполнению работы.
Подготовка к выполнению работы
1. Повторить назначение, основные режимы работы и структуру среды Visual
Studio.
2. Повторить также назначение основных операторов и структуру программы
на языке С++.
3. Изучить разделы учебного пособия «ОСНОВЫ ПРОГРАММИРОВАНИЯ
НА С++», стр. 74-76
Задание к лабораторной работе.
В соответствии с индивидуальным заданием таблицы 3 к лабораторной
работе составить схему алгоритма и написать программу на языке Си для
расчета нескольких таблиц значений функции.
Для организации внешнего и внутреннего циклов выбрать разные типы
циклических операторов.
Вывести на печать таблицы значений заданной функции в следующем виде :
Таблица 1
X= ……..
X= ……..
X= ……..
Таблица 2
X= ……..
X= ……..
Параметр= ………
Y= ……….
Y= ……….
Y= ……….
Параметр= ………
Y= ……….
Y= ……….
15
X= ……..
Y= ……….
...........................................
Таблица 3
№
ва
Функция
р.
1. y= 0.5 x(1 + ax)0.2
x
2.
b
x
y=   Cos 2
6.
a
a
2
 a 
 + Cos (a + x)
y= Lп

1
a


Lп( ax )
y=
+ a+x
Ln( x + 1)
2x
y= xLп Cos 2a
 b 
y= Sin (ax) + 3Cos 2 (ax 2 )
7.
y= 0.24 L п(ax) + aL п2 x
3.
4.
5.
8.
y=
9.
y=
Lп( ax 3 + b)
e x+1
1
sin x + b
a sin( x) Lп(a )
b+a
Варианты заданий
Изменения аргумента
X Є[1,15] ∆x=1
X Є[0.1,2.0] ∆x=0.3
Параметр
a=2.01, 3.5, 5.8
a=0.325, 0.4, 0.425
b=1.3
X Є[0.75,1.1] ∆x=0.05 a=0.3, 0.4, 0.5, 0.6
X Є[0.25, 1.75]
∆x=0.5
a=0.125, 0.325,
0.525
a=0.3, 0.05, 0.015
X Є[7.5,12] ∆x=0.5
b=0.05
X Є[0.1,0.25] ∆x=0.01 a=1, 2, 3, 4
X Є[1,4.6] ∆x=0.4
a=2, 5, 8, 11
X Є[0.1,1.9] ∆x=0.4
a=0,1, 2, 3
X Є[0.3,1.0] ∆x=0.1
a=1, 7.5, 14
b=1.8
π 2π
b=1.1

ax 
10. y= ae Lп a 
x 
y=
Cosx
11.
2
X Є[0.05,0.3] ∆x=0.05 a=0.2, 0.35, 0.75
12. y= πx + Tg ( x + b x ) + ax 3
X Є[0.8,1.6] ∆x=0.1
a=1.5, 2.1, -3.8
b=0.15
2
13. y= ax 2 + a + x + 1
X Є[1,2] ∆x=0.2
a=2.8, -3.1, -0.5
X Є[0.5, 2] ∆x=0.5
a Є[0.5, 2.0]
∆a=0.5 b=1.3
X Є[0.1, 1] ∆x=0.2
a Є[2, 2.6]
∆a=0.2
X Є[0.1, 1] ∆x=0.2
a Є[0.3, 0.5]
∆a=0.1 b=3.3
a
1+ a
x
+ Sin 2 x
Sinx
y=
14.
lп( x + b
15. y=
π
x
2
x − a ) + ax
+ a x + Ln( ax)
x
x
b
16. y= Sin +   − e x
a a
2
X=
,
,.....π
15 15
a=0.5, 0.6, 1.0, 1.2
16
17. y= e − ax cos(ax ) + 3 x + a
X Є[1,5] ∆x=0.5
a Є[1.5, 3.5] ∆a=1
18. y= 1.5Cos 2 x + bxa1.5 x
X Є[0.2, 2.8] ∆x=0.4
19. y= a x + a 2 x + Ln(ax) + x
X Є[0.1,1] ∆x=0.2
20. y= at 2 Ln(t ) + at + eat Cos (t )
t Є[0.1,3] ∆t=0.3

21. y= xLп
X Є[7.5,12] ∆x=0.5
a=2.3, 3.7, 4,1
b=1.8
a Є[1.5, 4.5]
∆a=1.5
a [-0.5, 4.5]
∆a=1.5
a=0.3, 0.05, 0.015
b=0.05
22. y= Sin
X Є[0.1,0.25] ∆x=0.01 a=1, 2, 3, 4
2x 
2
Cos a
 b 
(ax) + 3Cos 2 (ax 2 )
23. y= 0.24 L п(ax) + aL п2 x
Lп( ax 3 + b)
24. y=
x +1
e
25. y=
1
sin x + b
a sin( x) Lп(a )
b+a
X Є[1,4.6] ∆x=0.4
a=2, 5, 8, 11
X Є[0.1,1.9] ∆x=0.4
a=0,1, 2, 3
X Є[0.3,1.0] ∆x=0.1
a=1, 7.5, 14
b=1.8
b=1.1
Содержание отчета.
1. Номер, тема и цель лабораторной работы
2. Задание к лабораторной работе.
3. Схема алгоритма.
4. Программа на языке Си.
5. Результаты решения.
Показать отчет преподавателю.
Контрольные вопросы
1.. Понятие параметра цикла, тела цикла, управляющих операторов цикла.
2. Вложенные циклы.
3.Операторы ввода-вывода.
4.Управление формой вывода в операторе printf.
Лабораторная работа №6
ФОРМИРОВАНИЕ И ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ
Цель работы: Приобретение навыков разработки алгоритмов
формирования и обработки одномерного массива. Закрепление понятий
базовых структур цикл, разветвление, понятий конечного цикла,
рекурсивного алгоритма.
17
Подготовка к лабораторной работе
1. Повторите вопросы организации циклических алгоритмов, понятия
конечного цикла.
2. Повторить следующие вопросы и понятия :
• массивы данных (размерность массива, обращение к элементу
массива, расположение элементов массива в памяти ПК);
• правила работы с массивами данных на языке программирования С++:
описание массивов, задание типа и размерности массива;
• организация циклов для ввода и формирования элементов массива;
• алгоритм
поиска
максимального
(минимального)
элемента
одномерного массива;
• алгоритм поиска суммы элементов одномерного массива;
• алгоритм подсчета количества элементов одномерного массива,
удовлетворяющих поставленному условию;
• организация вывода элементов массива.
3. Изучить разделы учебного пособия «ОСНОВЫ ПРОГРАММИРОВАНИЯ
НА С++», стр. 78-88
4. В соответствии с вариантом (таблица 4) разработайте алгоритм обработки
элементов массива.
5. Напишите программу на алгоритмическом языке в соответствии со
схемой алгоритма, составленной в п.3.
6. Организуйте вывод массива и вывод результатов обработки массива.
СХЕМУ АЛГОРИТМА ИЗОБРАЗИТЕ С ПОМОЩЬЮ СИМВОЛА
ПОДГОТОВКА.
Напишите программу на алгоритмическом языке в соответствии со схемой
алгоритма.
После окончания цикла формирования массива организуйте вывод массива
и вывод результатов обработки массива. Результаты, например, могут иметь
вид:
ИСХОДНЫЙ МАССИВ А:
15.583 19.287 28.385 45.621 39.728 5.456 -8.087 3.897
ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ:
МАХ = 45.621
18
Варианты заданий
Таблица 4
№
вар.
1
2
3
4
Исходные данные
Действия по обработке массива
Массив
Х[30]
нецелых элементов
задать
датчиком
случайных чисел.
Массив
С[15]
нецелых элементов
вводят с клавиатуры.
Массив Х [36] целых
элементов
задать
датчиком случайных
чисел.
Массив
А[20]
нецелых элементов
вводят с клавиатуры.
Записать в массив Y подряд положительные
элементы массива Х и найти их среднее
арифметическое.
5
Массив
Z[15]
нецелых элементов
вводят с клавиатуры.
6
Массив
А[20]
нецелых элементов
задать
датчиком
случайных чисел.
Массив
С[15]
нецелых элементов
вводят с клавиатуры.
Массив
Y[10]
нецелых элементов
вводят с клавиатуры.
7
8
9
10
Массив D
элементов
датчиком
чисел.
Массив B
элементов
датчиком
чисел.
[30] целых
задать
случайных
Определить минимальный элемент массива С и
его порядковый номер. Заменить его на 0 .
Переписать подряд в массив Y положительные
и в массив Z отрицательные элементы массива
Х и определить, сколько в массиве Y четных
элементов.
Определить
среднее
арифметическое
положительных
элементов
массива
и
подсчитать сколько элементов находится в
интервале от 2.5 до 3.5.
Переписать в массив R сначала положительные,
а затем отрицательные элементы массива Z и
найти
сумму положительных элементов и
количество отрицательных элементов.
Вычислить среднее арифметическое значение
положительных элементов и максимальный
элемент среди отрицательных элементов
массива А.
Вычислить минимальный положительный и
максимальный отрицательный элементы и их
порядковые номера в массиве С.
Вычислить среднее геометрическое элементов
массива и определить наибольший элемент
массива. Заменить наибольший элемент массива
на среднее геометрическое элементов массива.
Найти минимальный и максимальный элемент,
среди четных элементов массива D и поменять
их местами.
[30] целых Переписать подряд в массив А те элементы
задать массива В, для которых справедливо: Bi>
случайных ( Bi −1 + Bi +1 ) / 2
.Вычислить
сумму
элементов
массива
А
и
количество
элементов,
удовлетворяющих условию 1< Аi < 5.
19
11
Массив
А[15] Найти минимальный элемент и сумму
сформировать
по отрицательных элементов. Заменив в массиве А
правилу
минимальный элемент найденной суммой.
Ai =
12
13
14
15
16
17
18
i −1
(i − 1) 2
sin
i +1
i +1
Массив
А[22]
нецелых элементов
задать
датчиком
случайных чисел.
Массив
B[20]
сформировать
по
2
правилу bi = | i − a |
a=25.8
Записать в массив Х номера тех элементов
массива А, для которых справедливо Аi -1< Аi
< Аi +1. Вычислить среднее арифметическое
элементов массива А.
Найти сумму элементов с номерами с 5-го по
10-ый, упорядочить эти элементы по убыванию
и найти произведение элементов Bi < 8.5
y=cos (nx + e)
1<= n <= 30
e =0.5
x
вводить
с
клавиатуры.
Массив
Х[20]
нецелых элементов
вводят с клавиатуры.
Массив
A[40]
cформировать
по
Записать в массив А те значения n, при которых
у<0, в массив В записать те значения n, при
которых у>0.
Вычислить сумму и количество элементов,
удовлетворяющих условию -3<=Xi<=7 и
заменить в массиве Х элементы Xi<2 на 0.
Найти максимальный элемент и заменить его
суммой элементов, предшествующих ему.
cos i
Найти минимальный элемент и заменить его
ai =
суммой элементов, стоящих после него.
i
правилу
Массив
Y[25] Переписать в массив Х элементы массива Y в
cформировать
по обратном
порядке и найти среднее
n +1
арифметическое
максимального
и
x
правилу y n =
2
минимального элемента в массиве Y.
1 + 4n
X=2.3
Массив
cформировать
zi =
19
x 2i
2i
Z[15] Найти сумму элементов с нечетными номерами
по и минимальный элемент среди элементов с
четными номерами.
правилу
x=1.2
Массив
Х
cформировать
[40] Найти минимальный элемент среди элементов,
по удовлетворяющих условию 2<=Xi<=4 и
заменить его произведением элементов,
правилу xi = ai + 8
предшествующих ему.
a=pi/6
20
20
Массив
Y[25] Определить количество элементов у i<1.2 среди
cформировать
по элементов с нечетными номерами и сумму
правилу
элементов с четными порядковыми номерами.
yi =
21
22
23
24
25
26
27
28
29
cos 2ix
(2i − 1)(2i + 1)
x
вводить
с
клавиатуры.
Массив
Z[20] Определить сумму первых восьми элементов и
cформировать
по количеств
элементов, удовлетворяющих
2i
условию zi>3.6
x
zi =
2i
правилу
x=1.2
Массив B [20] целых Переписать в массив Х нечетные элементы
элементов
задать массива В, уменьшенные на 2.5 и найти сумму
датчиком случайных элементов массива В.
чисел..
Массив
А[30] Вычислить сумму тех элементов, для которых
нецелых элементов справедливо i+1<Ai<i2+2 и произведение
задать
датчиком отрицательных.
случайных чисел.
Массив С[20] целых Определить количество элементов кратных 5 и
элементов вводят с количество элементов, кратных 7 и сумму этих
клавиатуры.
элементов.
Массив
Х[30] Переписать в массив Y подряд элементы
нецелых элементов массива Х ,удовлетворяющие условию 1.5< xi <
задать
датчиком 5 и найти их среднее арифметическое.
случайных чисел.
Массив
С[15] Определить минимальный элемент массива С и
нецелых элементов его порядковый номер. Заменить минимальный
вводят с клавиатуры. элемент на 0.
Массив Х [16] целых Переписать подряд в массив Y положительные
элементов вводят с элементы массива
Х ,а и массив Zклавиатуры.
отрицательные элементы массива Х и
определить, сколько в массиве Y четных
элементов.
Массив
А[30] Определить среднее арифметическое элементов
нецелых элементов массива и подсчитать, сколько элементов
задать
датчиком находится в пределах от -2.8 до 3.8.
случайных чисел.
Массив
Z
[30] Расположить
в
массиве
R
сначала
нецелых элементов положительные,
а
затем
отрицательные
задать
датчиком элементы массива Z.
случайных чисел.
21
Содержание отчета
1.Номер и тема лабораторной работы.
2.Вариант задания.
3.Результаты подготовки:
- схема алгоритма обработки элементов массива,
- программа на заданном алгоритмическом языке.
4.Итоги работы :
- результаты расчета с текстовыми комментариями.
Контрольные вопросы
1.Какие ограничения накладываются на индексы элементов массивов?
2.Способы описания массивов на языке Си. Понятия размерности
массивов, описание размерности массивов.
3.Задание типов элементов массива. Могут ли элементы массива иметь
разный тип?
4.Как располагаются элементы массива в памяти?
5.Чем отличаются алгоритмы поиска максимального и минимального
элемента массива.
6.Что является общим во всех алгоритмах формирования и обработки
массивов?
7. Чем отличаются алгоритмы расчета суммы и подсчета числа элементов
массива.
Лабораторная работа №7
ОБРАБОТКА СИМВОЛЬНОЙ ИНФОРМАЦИИ
Цель работы: Приобрести навыки разработки программ для обработки
символьной информации.
Подготовка к лабораторной работе
При подготовке к лабораторной работе:
1. Изучить разделы учебного пособия «ОСНОВЫ ПРОГРАММИРОВАНИЯ
НА С++», стр. 109-117.
2. Подготовить текст исходного предложения в соответствии с вариантом
задачи, указанным в таблице (предложение должно заканчиваться точкой,
разделитель слов в предложении - пробел).
3. Составить программу обработки предложения согласно варианту задания и
выполнить ее на ПК
22
Варианты заданий:
Таблица 5
Вариант
Условие задачи
1
Из заданного предложения, начиная с первой встретившейся
буквы 'а', переписать в новый массив все символы до первой
встретившейся буквы ' к'.
2
В исходном предложении удалить все символы пробела, создав
из
оставшихся
символов
новый
массив.
Вывести
преобразованный текст и количество удаленных пробелов.
3
Определить, сколько раз в заданном предложении встречается
сочетание двух первых символов.
4
В качестве исходного предложения задать арифметическое
выражение, записанное на языке С.
Проверить, соблюдается ли баланс открывающихся и
закрывающихся скобок. Если равенство соблюдается, то
вывести соответствующее сообщение, в противном случае
вывести количество открывающихся и закрывающихся скобок.
5
6
Создать новое предложение из гласных букв исходного.
В заданном предложении найти слово, в котором
максимальное количество буквы 'а' . Вывести сколько раз буква
'а' встречается в этом слове.
Сформировать числовой массив N, элементы которого
указывают длину каждого слова в исходном предложении.
Сформировав новый массив В из исходного предложения,
поставив перед каждым словом знак '?’,
Составить новое предложение, содержащее первые буквы
каждого слова заданного предложения.
В каждом слове заданного предложения поменять местами
первую букву и последнюю.
Указать, сколько раз первый символ первого слова встречается
в заданном предложении.
В заданном предложении найти самое короткое слово.
7
8
9
10
11
12
13
14
В заданном предложении заменить все запятые на «!», не
создавая нового массива. Вывести преобразованный текст, а
также количество удаленных запятых.
В заданном предложении заменить все строчные латинские
23
15
16
буквы прописными.
Определить, есть ли в заданном предложении цифры, посчитать
сколько их.
Создать новое предложение из исходного, поставив в новом
предложении в конце каждого слова точку и каждое слово
записать с большой буквы.
17
Собрать новое предложение из последних символов слов
исходного текста.
18
В заданном предложении поменять местами последнюю букву
предыдущего слова с первой буквой следующего слова.
Сформировать числовой массив N, элементы которого
указывают количество гласных букв в каждом слове исходного
предложения.
Сформировать числовой массив N, элементы которого
указывают количество букв ‘o’ в каждом слове исходного
предложения.
19
20
Содержание отчета
1. Номер и тема лабораторной работы.
2. Вариант задания.
3. Результаты подготовки:
- схема алгоритма обработки предложения,
- программа на заданном алгоритмическом языке.
4. Итоги работы программы:
- результаты расчета с текстовыми комментариями.
Показать отчет преподавателю.
Контрольные вопросы
1. Описание символьных данных и строк на языке С++.
2. Встроенные функции языка С++, используемые для обработки строк.
3. Кодирование символьной информации в ПЗВМ.
Лабораторная работа № 8
ОБРАБОТКА СТРУКТУР
Цель работы: Получить навыки использования алгоритмов обработки
структурированных типов данных.
Подготовка к лабораторной работе
24
Повторить следующие вопросы:
правила сравнения арифметических и символьных переменных;
алгоритмы упорядочивания данных по возрастанию и убыванию;
описание структур;
оператор присоединения.
Изучить разделы учебного пособия «ОСНОВЫ ПРОГРАММИРОВАНИЯ
НА С++», стр. 124-130.
3. В соответствии с индивидуальным заданием составить схему алгоритма и
программу на языке С++.
1.
•
•
•
•
2.
Порядок выполнения работы
1.
2.
3.
4.
Получить допуск к работе у преподавателя.
Создать исходный файл с текстом программы.
Провести отладку программы.
Запустить программу на счет, провести анализ правильности результатов и с
разрешения преподавателя вывести на печать.
Задание к лабораторной работе
По данным таблицы 6, содержащей информацию о работниках предприятия,
провести обработку данных согласно варианту задания. Вывести на печать
исходную таблицу и найденное значение.
Варианты заданий:
1. Найти информацию о сотруднике с минимальным значением рабочего
стажа.
2. Найти информацию о самом молодом сотруднике .
3. Посчитать средний возраст сотрудников.
4. Посчитать средний стаж сотрудников.
5. Найти в списке самого молодого мужчину.
6. Найти в списке самую молодую женщину.
7. Посчитать количество женщин в списке.
8. Посчитать количество сотрудников старше 30 лет.
9. Расположить сведения о сотрудниках в алфавитном порядке.
10.Определить, сотрудников какого пола больше в списке.
25
11.Посчитать, сколько в списке мужчин старше 50 лет.
12.Найти информацию о сотруднике с максимальным стажем работы.
13.Найти в списке самую старшую женщину.
14.Посчитать, сколько на предприятии сотрудником моложе 40 лет.
15.Выдать сведения о мужчинах с рабочим стажем больше 20 лет .
16.Выдать сведения о сотрудниках моложе 40 лет .
17.Упорядочить сведения о женщинах в порядке возрастания их рабочего
стажа.
18.Расположить сведения о женщинах в алфавитном порядке.
19.Расположить сведения о мужчинах старше 50 лет в алфавитном порядке.
20.Расположить сведения о сотрудниках в возрасте от 30 до 50 лет в
алфавитном порядке.
Таблица 6
№
Фамилия И. О.
Пол
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Анисимов Ю. П.
Иванов И. Н.
Махова О. И.
Огарев К. М.
Егорова П. К.
Голикова О. И.
Сотников Т. С.
Комов В. И.
Лебедев А. А.
Димова В. В.
М
М
Ж
М
Ж
Ж
М
М
М
Ж
Год
рождения
1970
1980
1960
1991
1993
1972
1963
1979
1959
1991
Год поступления
на работу
1989
2002
1980
2012
2011
1990
1990
2005
1981
2010
Лабораторная работа № 9
СОЗДАНИЕ И ОБРАБОТКА БИНАРНЫХ ФАЙЛОВ
Цель работы: Приобрети навыков разработки алгоритмов обработки
файлов. Закрепление понятий базовых структур цикл, разветвление.
Подготовка к лабораторной работе
26
При подготовке к лабораторной работе следует повторить следующие
вопросы:
1. понятие файла, описание файла, типы файлов;
2. описание структурных типов;
3. стандартные функции для работы с файлами: fopen( ), fscanf( ),
fprintf( ), fclose( ), feof( ).
4. Изучить
разделы
учебного
пособия
ПРОГРАММИРОВАНИЯ НА С++», стр. 130-142.
«ОСНОВЫ
Задание к лабораторной работе
В соответствии с вариантом задания разработать две программы:
программу создания и программу обработки бинарного файла.
Варианты заданий:
Таблица 2
Вариант
1.
Условие задачи
1.Создать файл Train.dat, содержащий 8 записей следующей
структуры: название пункта назначения; номер поезда; время
отправления.
2.Написать программу, выполняющую следующую обработку
файла Train.dat:
• поиск в файле и вывод на экран информации о поезде,
номер которого введен с клавиатуры;
• если таких поездов нет,
сообщение на дисплей.
2
выдать соответствующее
1.Создать файл Spravka.dat, содержащий
10 записей
следующей структуры: название начального пункта маршрута;
название конечного пункта маршрута; номер маршрута;
2.Написать программу, выполняющую следующую обработку
файла Spravka.dat:
ф й
27
3
1.Создать файл Train.dat, содержащий 8 записей следующей
структуры: название пункта назначения; номер поезда; время
отправления.
2.Написать программу, выполняющую следующую обработку
файла Train.dat:
• поиск в файле поездов, отправляющихся после
введенного с клавиатуры времени;
• если таких поездов нет,
сообщение на дисплей.
4.
выдать соответствующее
1.Создать файл Spravka.dat, содержащий
10 записей
следующей структуры: название начального пункта маршрута;
название конечного пункта маршрута; номер маршрута;
2.Написать программу, выполняющую следующую обработку
файла Spravka.dat:
• поиск в файле данных о маршрутах,
которые
начинаются или заканчиваются в пункте, название
которого вводится с клавиатуры;
• если таких маршрутов нет, выдать соответствующее
сообщение на дисплей.
5
1.Создать файл Wedomost.dat, содержащий
10 записей
следующей структуры: фамилия и инициалы студента; номер
группы; успеваемость по трем предметам;
2.Написать программу, выполняющую следующую обработку
файла Wedomost.dat:
• поиск в файле информации о студентах, имеющих хотя
бы одну оценку 2;
• если таких студентов нет, выдать соответствующее
сообщение на дисплей.
28
6
1.Создать файл Spravka.dat, содержащий
10 записей
следующей структуры: название пункта назначения; номер
рейса; тип самолета.
2.Написать программу, выполняющую следующую обработку
файла Spravka.dat:
• поиск в файле номеров рейсов, вылетающих в пункт,
название которого вводится с клавиатуры;
• если таких рейсов нет,
сообщение на дисплей.
7
1. Создать
файл
выдать
Wedomost.dat,
следующей структуры:
соответствующее
содержащий
8
записей
фамилия и инициалы студента;
номер группы; успеваемость по трем предметам;
2. Написать программу, выполняющую следующую обработку
файла Wedomost.dat:
• поиск в файле информации о студентах, имеющих только
оценки 4 и 5;
• если таких студентов нет, выдать соответствующее
сообщение на дисплей.
8
1. Создать файл Wedomost.dat, содержащий 6 записей
следующей структуры: фамилия и инициалы студента;
номер группы; успеваемость по трем предметам;
2. Написать
программу,
выполняющую
следующую
обработку файла Wedomost.dat:
• поиск в файле информации о студентах, имеющих
средний балл меньше 4;
• если таких студентов нет, выдать соответствующее
сообщение на дисплей.
29
9
1.Создать файл Spravka.dat, содержащий
10 записей
следующей структуры: название пункта назначения; номер
рейса; тип самолета.
2.Написать программу, выполняющую следующую обработку
файла Spravka.dat:
• поиск в файле номеров рейсов, обслуживаемых
самолетом, тип которого вводится с клавиатуры;
• если таких рейсов нет,
сообщение на дисплей.
10
выдать
соответствующее
1. Создать файл Train.dat, содержащий записи следующей
структуры:
название пункта назначения;
номер поезда;
время отправления;
2. Написать программу, выполняющую следующую обработку
файла Train.dat:
• поиск в файле поездов, отправляющихся в пункт,
название которого вводится с клавиатуры;
• если таких поездов нет,
сообщение на дисплей.
11
выдать соответствующее
1.Создать файл WORKER.dat, содержащий
6 записей
следующей структуры: фамилия и инициалы; номер телефона;
день рождения (массив из трех чисел);
2. Написать программу, выполняющую следующую обработку
файла WORKER.dat:
• поиск в файле информации о человеке, чья фамилия
введена с клавиатуры;
• если такого человека нет, выдать соответствующее
сообщение на дисплей.
30
12
1. Создать
файл
следующей
STUDENT.dat
структуры:
,
содержащий
записи
студента;
его
ФИО
экзаменационные оценки по трем дисциплинам.
2. Написать программу, которая выбирает из файла студентов,
имеющих хотя бы одну задолженности. Вывести ФИО этих
студентов и количество несданных экзаменов.
13
1. Создать файл F1.dat, содержащий 8 записей следующей
структуры: ФИО; номер телефона; день рождения (массив из
трех чисел)
2. Написать программу, которая переписывает файл F1.dat в
файл F2.dat таким образом, чтобы записи расположились а
алфавитном порядке.
14
1. Создать файл ZNAK.dat, содержащий записи следующей
структуры:
фамилия и инициалы;
знак Зодиака; день
рождения (массив из трех чисел);
2. Написать программу, выполняющую следующие действия:
• поиск в файле ZNAK.dat
информации о людях,
родившихся под знаком, название которого введено с
клавиатуры;
• если таких людей нет,
сообщение на дисплей.
15
выдать
соответствующее
1. Создать файл Work.dat, содержащий 6 записей следующей
структуры: ФИО рабочих; их среднемесячный заработок.
2. Написать программу, выполняющую следующую обработку
файла Work.dat:
Вывести ФИО рабочих, имеющих наибольший заработок.
31
16
1. Создать
файл
содержащий
WORKER.dat,
следующей структуры:
5
записей
фамилия и инициалы;
номер
телефона; день рождения (массив из трех чисел);
2. Написать программу, выполняющую следующую обработку
файла WORKER.dat:
• поиск в файле информации о людях, родившихся в месяц,
номер которого введен с клавиатуры;
• если таких людей нет,
сообщение на дисплей.
17
1. Создать
файл
выдать
соответствующее
ABONENT.dat, содержащий
5 записей
следующей структуры: ФИО абонента; его номер телефонов.
2. Составить программу, которая по ФИО абонента, введенной
с клавиатуры, выводит его номер телефона.
18
• если такого абонента нет, выдать соответствующее
сообщение на дисплей.
1. Создать файл AEROFLOT.dat, содержащий 6 записей
следующей структуры: номер рейса самолета; количество
свободных мест.
2. Составить программу, которая по вводимому с клавиатуры
номеру рейса выводит из файла
сведения о количестве
свободных мест на этот рейс.
• если такого рейса нет,
сообщение на дисплей.
19
1. Создать
файл
PRICE.dat,
выдать
соответствующее
содержащий
5
записей
следующей структуры: название детской игрушки; ее
стоимость.
2. Написать
программу,
выполняющую
следующую
обработку файла PRICE.dat:
Вывести
наименование
и
стоимость
самой
дорогой
32
20
1. Создать файл PRICE.dat, содержащий
5 записей
следующей структуры: название детской игрушки, ее
стоимость, название магазина, в котором она продается.
2. Написать
программу,
выполняющую
следующую
обработку файла PRICE.dat:
Вывести полную информацию об игрушке, название которой
введено с клавиатуры
Если игрушки такой нет в PRICE, выдать сообщение на
дисплей.
21
1. Создать файл PriceList.dat, содержащий записи следующей
структуры: название товара; название магазина, в котором
он продается; стоимость;
2. Написать программу, выполняющую следующую обработку
файла PriceList.dat:
• поиск в файле информации о товаре, название которого
введено с клавиатуры;
• если такого товара нет,
сообщение на дисплей.
22
1. Создать
файл
выдать
PriceList.dat,
следующей структуры:
соответствующее
содержащий
название товара;
записи
название
магазина, в котором он продается; стоимость;
2. Написать
программу,
выполняющую
следующую
обработку файла PriceList.dat:
• поиск в файле информации о товарах, имеющихся в
магазине, название которого введено с клавиатуры;
• если такого магазина нет, выдать соответствующее
сообщение на дисплей.
33
23
1. Создать файл ORDER.dat, содержащий записи следующей
структуры: расчетный счет плательщика; расчетный счет
получателя; перечисляемая сумма.
2. Написать программу, выполняющую следующую обработку
файла ORDER.dat:
• поиск в файле информации о сумме и расчетном счете
получателя, которому перечислил эту сумму плательщик,
номер которого введен с клавиатуры;
• если такого плательщика нет, выдать соответствующее
сообщение на дисплей.
24
1. Создать файл ZNAK.dat, содержащий записи следующей
структуры: фамилия, имя; знак Зодиака; день рождения
(массив из трех чисел);
2. Написать программу, выполняющую следующую обработку
файла ZNAK.dat:
• поиск в файле информации о людях, родившихся в одно
и тоже число, значение которого введено с клавиатуры;
• если таких людей нет,
сообщение на дисплей.
25.
выдать
соответствующее
1. Создать файл F1.dat, содержащий 8 записей следующей
структуры: ФИО; номер телефона; день рождения
(массив из трех чисел)
2. Написать программу, которая переписывает файл F1.dat
в
файл
F2.dat
таким
образом,
чтобы
записи
расположились в порядке убывания дат рождений.
Содержание отчета
1.Номер и тема лабораторной работы.
2.Вариант задания.
3.Текст программы создания бинарного файла.
4. Текст программы обработки бинарного файла.
5. Итоги работы программ:
34
- содержимое файла.
- результаты обработки бинарного файла.
Контрольные вопросы
1. Понятие файла.
2. Способ описания файла.
3. Описание структурного типа.
4. Стандартные функции для работы с файлами.
5. С помощью какой функции осуществляется подготовка файла для
чтения?
6. С помощью, каких функций выполняется чтение данных из файла?
7. Как распознать конец файла данных?
Лабораторная Работа № 10
БЕЗТИПОВЫЕ ПОДПРОГРАММЫ – ФУНКЦИИ
Цель работы:
Приобрести навыки организации программ с
использованием безтиповых функций, определенных пользователем.
Подготовка к лабораторной работе:
В процессе подготовки к лабораторной работе необходимо повторить
такие элементы языка как: отличие безтиповой функции от типизированной,
списки фактических и формальных параметров, вызов безтиповой функции.
В соответствии с заданием разработать алгоритм решения задачи,
описать его в виде схемы и составить программу на языке Си.
1.
2.
3.
4.
5.
Порядок выполнения работы:
Получить допуск у преподавателя.
Создать исходный файл с программой на языке Си.
Провести отладку программы.
Выполнить программу.
После проверки правильности результатов решения показать их
преподавателю.
Содержание отчета:
6. Номер, тема и цель лабораторной работы
7. Задание к лабораторной работе.
8. Схема алгоритма.
9. Программа на языке Си.
10. Результаты решения.
1.
2.
Контрольные вопросы:
Для чего используются подпрограммы?
Структура безтиповыой функции, определенной пользователем.
35
3.
4.
5.
6.
Как вызывается такая функция?
Область действия глобальных и локальных имен в программе.
Правила взаимодействия списков фактических и формальных
параметров.
Отличие параметров-значений от параметров переменных.
Задание к лабораторной работе:
Разработать программу для выполнения над массивом операций в
соответствии с вариантом. На печать вывести исходный и преобразованный
массив.
Варианты заданий:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Реверс массива.
Вычисление сумм положительных и отрицательных элементов
массива отдельно.
Попарное перемножение элементов двух массивов.
Вычисление суммы положительных элементов и количества
отрицательных элементов массива.
Замена отрицательных элементов массива нулями.
Сложение двух массивов
Умножение элементов массива на скаляр.
Замена всех положительных элементов массива нулями.
Вычисление отдельно количества нулевых, положительных и
отрицательных элементов массива.
Вычитание из элемента массива его номера.
Удвоение всех положительных элементов массива.
Замена нулями всех четных элементов массива .
Вычисление количеств отрицательных элементов в массиве
Вычитание из значения каждого элемента массива его номера.
Удвоение всех значений исходного массива.
Удвоение значений четных элементов массива.
Вычитание из элементов с нечетными номерами элементов с
четными номерами.
Деление каждого элемента массива на его номер.
Удвоение значений тех элементов массива, у которых номер
четный.
Прибавление к каждому элементу массива значение его номера.
Деление каждого элемента массива на его номер.
Вычитание из элементов массива скаляра, равного числу нулевых
элементов этого массива.
23. Замена максимального элемента массива на нуль.
Примечание: Значения для исходного массива сформировать,
используя датчик псевдослучайных чисел RAND.
36
Лабораторная Работа № 11
ТИПОВЫЕ ПОДПРОГРАММЫ - ФУНКЦИИ
Цель работы: Приобрести навыки использования
разработанных пользователем, в качестве подпрограмм.
функций,
Подготовка к лабораторной работе:
В процессе подготовки к лабораторной работе необходимо повторить
такие элементы языка как: понятие функции, структура типизированной
функции, списки фактических и формальных параметров, вызов типовой
функции.
В соответствии с заданием разработать алгоритм решения задачи,
описать его в виде схемы и составить программу на языке Си.
1.
2.
3.
4.
5.
Порядок выполнения работы:
Получить допуск у преподавателя.
Создать исходный файл с программой на языке Си.
Провести отладку программы.
Выполнить программу.
После проверки правильности результатов решения показать их
преподавателю.
Содержание отчета:
1. Номер, тема и цель лабораторной работы
2. Задание к лабораторной работе.
3. Схема алгоритма.
4. Программа на языке Си.
5. Результаты решения.
1.
2.
3.
4.
5.
Контрольные вопросы:
Типы функции, используемые в программе на языке Си.
Структура функции, определенной пользователем.
Отличие типовой функции от безтиповой функции.
Типы параметров функции.
Глобальные и локальные идентификаторы.
Задание к лабораторной работе:
Разработать программу для выполнения над массивом операций в
соответствии с вариантом. На печать вывести исходный массив и
полученный результат с текстовым комментарием.
37
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Варианты заданий:
количества элементов массива, больших 1 и
Вычисление
меньших 5.
Вычисление
среднего арифметического отрицательных
элементов массива.
Вычисление суммы элементов нечетных элементов массива.
Вычисление количества положительных четных элементов
массива.
Вычисление суммы элементов массива
Вычисление количества отрицательных элементов массива.
Вычисление суммы положительных элементов массива.
Вычисление количества элементов массива, кратных 5.
Определение минимального значения среди положительных
элементов массива.
Вычисление суммы четных элементов массива.
Определение максимального значения среди массива.
диагональю.
Определение наибольшего из элементов, кратных 3.
Определение наименьшего из элементов массива.
Вычисление количества нулевых элементов массива .
Определение наибольшего из нечетных элементов массива.
Вычисление среднего арифметического для элементов массива
больших 2 и меньших 5.
Определение максимального значения среди отрицательных
элементов массива.
Вычисление суммы элементов массива от первого элемента до
минимального элемента.
Примечание: Значения для исходного
самостоятельно с помощью датчика случайных чисел.
массива
задать
38
Download