- •210201-«Проектирование и технология радиоэлектронных средств»
- •Порядок выполнения работы
- •Примеры программ программа Паскаль
- •Void main(void) // Главная функция (основной блок программы)
- •Операторы ветвления в си
- •Методические указания
- •Программирование циклов в си
- •Операции с двумерными массивами
- •Пример программы на Паскале:
- •Порядок выполнения работы
- •Пример программы на Паскале:
Порядок выполнения работы
Получить вариант задания
1. Сформировать файл из некоторых чисел. Записать во второй файл количество положительных, отрицательных и нулевых элементов файла.
2. Сформировать два файла из некоторых чисел. Получить третий файл в который сначала записать элементы второго файла, а затем первого.
3. Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы первого и второго файлов.
4. Сформировать файл из некоторых чисел. Записать во второй файл сначала положительные, а потом отрицательные элементы первого файла.
5. Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы первого файла и отрицательные элементы второго.
6. Сформировать два файла из некоторых чисел. Записать в третий файл нулевые элементы первого файла и четные элементы второго.
7. Сформировать файл из некоторых чисел. Записать во второй файл положительные элементы первого файла, а в третий- отрицательные элементы первого файла.
8. Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы второго файла и отрицательные элементы первого.
9. Сформировать два файла из некоторых чисел. Записать в третий файл минимальный элемент первого файла и максимальный элемент второго.
10.Сформировать файл из некоторых чисел. Записать во второй файл из первого максимальный отрицательный элемент, в третий - минимальный положительный.
11.Сформировать два файла из некоторых чисел. Определить, в каком файле больше положительных элементов и результат записать в третий файл.
12.Сформировать два файла из некоторых чисел. Записать в третий файл положительные элементы того файла, в котором находится максимальное отрицательное число.
13.Сформировать файл из некоторых чисел. Записать во второй файл элементы первого файла с четными номерами, в третий с нечетными.
14.Сформировать файл из некоторых чисел. Записать во второй файл все положительные элементы первого, а затем абсолютные величины отрицательных элементов.
15.Сформировать два файла из некоторых чисел. Записать в третий файл два первых элемента первого файла и два последних элемента второго.
16.Сформировать два файла из некоторых чисел. Записать в третий файл последний положительный элемент первого файла и первый отрицательный второго.
2. Составить программы вычисления значений арифметических выражений на языках СИ и ПАСКАЛЬ. Обозначить в текстах
программ порядок выполнения арифметических операций.
Выполнить расчет по программе.
Пример программы на Паскале:
{ Сформировать файл из некоторых чисел. }
{ Записать во второй файл количество положительных, }
{ отрицательных и нулевых элементов файла. }
uses CRT; { Подключение библиотеки ввода-вывода }
const n=10; { Максимальный размер массива }
{ Раздел объявления переменных }
var
File1, File2: FILE of Integer; { Переменные файлового типа }
Road1, Road2: String[14]; { Строки для хранения имён файлов }
a : Array[1..n] of Integer; { Массив для хранения введённых чисел }
i, pol, otr, nul: Integer; { i-счётчик цикла }
{ pol-количество положительных элементов массива}
{ otr количество отрицательных элементов массива}
{ nul количество нулевых элементов массива}
{ Основной блок программмы }
begin
ClrScr; { Очистка экрана }
WriteLn('Выполнил Поляков Д.Г., КТФ, гр. Р-11');
Road1:='Test1.dat'; { Задание имён файлов }
Road2:='Test2.dat';
Assign(File1,Road1); { Связь файловой переменной с внешним файлом Road1}
Rewrite(File1); { Создание и открытие файла Test1.dat }
Assign(File2,Road2); { Связь файловой переменной с внешним файлом Road2}
Rewrite(File2); { Создание и открытие файла Test2.dat }
pol:=0; { Инициализация переменных }
otr:=0;
nul:=0;
for i:=1 to n do
begin
WriteLn('Введите ',i,' элемент массива'); { Запрос у пользователя
элементов массива}
Read(a[i]); { Ввод элементов массива }
Write(File1,a[i]); { Запись их в файл Test1.dat }
end;
Close(File1); { Закрытие файла Test1.dat }
WriteLn; { Пропуск строки }
WriteLn('____________________________________');
Reset(File1); { открытие файла Test1.dat для проверки правильности записи }
while not eof(File1) do { Чтение файла до тех пор, пока указатель }
{ текущей компоненты файла находится перед }
{ последней компонентой файла }
begin
Read(File1,a[i]); { Считывание чисел из файла }
Write(a[i]:2); { Распечатка считываемых чисел }
if a[i]>0 then pol:=pol+1; { Подсчет числа положительных, отрицательных}
if a[i]<0 then otr:=otr+1; { и нулевых элементов }
if a[i]=0 then nul:=nul+1;
Inc(i); { Приращение счётчика цикла }
end;
WriteLn; { Пропуск строки }
WriteLn('____________________________________');
Write(File2,pol); { Запись числа положительных, отрицательных }
Write(File2,otr); { и нулевых элементов в файл Test2.dat }
Write(File2,nul);
Close(File2); { Закрытие файлов Test1.dat и Test2.dat }
Close(File1);
Assign(File2,Road2); { Открытие файла Test2.dat }
Reset(File2); { для проверки правильности записи и печати результатов}
Read(File2,pol); WriteLn('Количество положительных: ',pol:3);
Read(File2,otr); WriteLn('Количество отрицательных:',otr:3);
Read(File2,nul); WriteLn('Количество нулевых:',nul:3);
Close(File2); { Закрытие файла Test2.dat }
ReadKey; { Задержка экрана }
end..
Пример программы на Си: Сформировать файл из некоторых чисел. Записать во второй файл количество положительных, отрицательных и нулевых элементов первого файла.
// Подключаемые библиотеки
#include<stdio.h> // Библиотека ввода-вывода
#include<conio.h> // Библиотека работы с окнами
#define N 6 // Макроопределение (размерность массива)
void main(void) // Главная функция (основной блок программы)
{
// Раздел объявления локальных переменных
FILE *f1; // Указатель на первый файл
FILE *f2; // Указатель на второй файл
int mas[N]; // Массив, элементами которого заполняется первый файл
int i, buf, nul, otr, pol; // i - переменная счетчика цикла
// buf - переменная, в которую будут
// считыватся значения из первого файла
// pol, otr, nul - переменные количества
// положительных, отрицательных и нулевых
// элементов первого файла соответственно
clrscr(); // Очистка экрана
printf("Составитель: Грибков Алексей Николаевич");
printf("\n\t\tФакультет КТФ, группа Р-11\n\n");
// Заполнение массива
for(i=0; i<N; i++)
{
printf("Введите %i элемент массива: ", i);
scanf("%i", &mas[i]); // Ввод элементов массива
}
// Создание в текущем каталоге файлов с именами file1 и file2
// и открытие их на запись
f1=fopen("file1","w+");
f2=fopen("file2","w+");
// Запись в файл с именем file1 элементов массива mas[N]
for(i=0; i<N; i++) fwrite(&mas[i],1,sizeof(int),f1);
fclose(f1); // Закрытие файла file1
pol=0; // Присвоение начального значения переменным
otr=0; // количества положительных, отрицательных и
nul=0; // нулевых элементов
// Открытие файла с именем file1 на чтение
fopen("file1","r+");
// Чтение из файла информации в переменную buf до тех пор,
// пока не наступит конец файла
while(fread(&buf,sizeof(int),1,f1)!=0)
{
// Если очередное значение переменной buf положительное, то
// значение переменной pol увеличивается на 1
if(buf>0) pol=pol+1;
// Если очередное значение переменной buf отрицательное, то
// значение переменной otr увеличивается на 1
if(buf<0) otr=otr+1;
// Если очередное значение переменной buf равно нулю, то
// значение переменной nul увеличивается на 1
if(buf==0) nul=nul+1;
}
// Запись в файл file2 количества положительных, отрицательных
// и нулевых элементов первого файла file1
fprintf(f2,"В ПЕРВОМ ФАЙЛЕ СОДЕРЖИТСЯ:\n");
fprintf(f2,"\nположительных элементов: %i", pol);
fprintf(f2,"\nотрицательных элементов: %i", otr);
fprintf(f2,"\nнулевых элементов: %i", nul);
// Вывод сообщения о завершении работы программы
printf("РАБОТА С ФАЙЛАМИ ЗАВЕРШЕНА");
printf("\nНажмите любую клавишу");
getch(); // Задержка экрана до нажатия любой клавиши
}
Содержание отчета по лабораторной работе
1. Цель лабораторной работы.
2. Блок-схема алгоритма программы.
3. Текст программы.
4. Результат расчета.
Контрольные вопросы
1. Что такое поток?
2. Какой конфигурацией задается поток?
3. Какая функция используется для открытия потока?
Какая функция используется для закрытия потока?
Литература
1 Вычислительная техника в инженерных и экономических расчетах: Учеб. для вузов. - 2-е изд., перераб. и доп./ Петров А.В. и др.; Под ред. Петрова. - М.: Высшая школа, 1984. - 320 с.
2 Брябрин В.М. Програмное обеспечение персональных ЭВМ.-М.: Наука, 1988. - 272 с.
3 Каранчук В.П. и др. Основы применения ЭВМ: Учеб. Пособие для вузов/ В.П. Каранчук, И.Н. Сваровский, И.Д.Суздальницкий.–М.: Радио и связь, 1988.– 288 с.
4 Ноутон П., Шилдт Г. Java: Пер с англ.– СПб.: Петербург,2003ю-1070с.
5 Т.Г. Ли, Г.Э. Адамс, У.М. Гейнз Управление процессами с помощью вычислительных машин. Моделирование и оптимизация. - М: ''Советское радио'',1972.
6 Уинер Р. Язык Турбо Си. - М.: Мир, 1991. - 380 с.
