Отчёт. Отчет по учебной практике (по программированию) студент группы воис311 Казьмин Александр Проверил
Скачать 1.73 Mb.
|
ФГБ ОУ ВПО «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ» (МГУПС (МИИТ)) Воронежский филиал МИИТ железнодорожный колледж ОТЧЕТ по учебной практике (по программированию) Выполнил: студент группы ВОИС-311 Казьмин Александр Проверил: Преподаватель Яицкая Е. В. Воронеж 2013 г. Содержание
Теоретическая часть
Файлы последовательного доступа Файл последовательного доступа может быть открыт для чтения или для записи, но не для чтения и записи одновременно. Синтаксис открытия файла: OPEN STREAM NUMBER, “FILE NAME”, W Строковая переменная в строке будет записана на диск в виде файла. Если файл не будет закрыт, то записанные в него данные могут быть потеряны. Любые закрытые файлы могут быть повторно открыты для последующих операций записи, чтения, изменения и перезаписи под другим именем. Синтаксис открытия файла для чтения: OPEN STREAM NUMBER. “FILE NAME”, R Файлы произвольного доступа Файл произвольного доступа представляет собой файл данных, который содержит некоторое количество пронумерованных записей, начиная с номера О. Длина записей (максимум 256 байт каждая) назначается при первоначальном открытии файла. Записи хранятся как простые строковые переменные. Каждая строковая переменная, меньшая, чем назначенная длина, запоминается с выравниванием слева и оканчивается символом «ВОЗВРАТ КАРЕТКИ». Оставшиеся байты записи не определены. Любая строковая переменная, длина которой превышает длину записи, будет усечена до оговоренной длины и запомнена без конечного символа «ВОЗВРАТ КАРЕТКИ». Синтаксис открытия файла произвольного доступа: OPEN STREAM NUMBER. “FILENAME” RND, RECORD LENGTH Если файл произвольного доступа открыт, вы можете читать из него и записывать в него. Синтаксис команды чтения из этого файла имеет вид: INPUT STREAM NUMBER; (RECORD NUMBER), VARIABLE NUMBER Когда все операции с файлом закончены, поток должен быть закрыт. Содержимое файла может быть потеряно, если выключить питание раньше, чем закрыть поток.
Файл Файл – это совокупность данных, записанных на внешний носитель, которая имеет определённое имя. Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов. Английское слово file переводится буквально как «шпилька для накалывания бумаг». Действительно, данные собираются в один информационный блок и оформляются в виде именного файла. В существующий файл может быть записана дополнительная информация, либо из него могут быть удалены ненужные данные. Файл является универсальным информационным объектом. Любая работа, выполненная на компьютере (текст, рисунки, аудио и видеозаписи, базы данных, программы), оформляются в виде файлов. Имя файла состоит из двух частей, разделённых точкой: собственно имя файла и расширение, определяющее его тип (программа, данные и т.д.). Эти две части разделены между собой точкой. Собственно имя файлу даёт пользователь, а тип файла обычно задаётся программой автоматически при его создании. В различных операционных системах существуют различные форматы имён файлов. В ОС Windows имя файла может иметь до 255 символов, причём допускается использование русского алфавита. Имя файла должно содержать не менее одного символа. Запрещается использовать в имени файла следующие символы: / \ : * ? “ < > |.
Операции над файлами
Задача 1.1 Задана окружность радиуса R. Составьте программу для нахождения её длины и площади ограниченного ею круга. начало Блок-схема. R – радиус. П – 3.14. R S – площадь. l – длина. S=П* l=2*П*R S, l конец
#include "iostream" #include using namespace std; void main() {float R,S,l; cout <<"Vvesti R"; cin>>R;//Ввод радиуса с клавиатуры S=3.14*pow(R,2);//Формула нахождения площади l=2*3.14*R;//Формула нахождения длины cout<<"S="< cout<<"l="< }
Задача 1.2 В классе N-учеников. После контрольной было получено: А-пятёрок, В-четвёрок, С-троек. Найти % троек, четвёрок, пятёрок.
начало N – количество учеников. N, A, B, C А – количество пятёрок. В – количество четвёрок. Xa= С – количество троек. Xb= Xc= Ха, Хb, Xc конец
#include "iostream" #include using namespace std; void main() {float A,B,C,Xa,Xb,Xc,N; cout<<"Vvesti A,B,C,N"; cin>>A>>B>>C>>N;//Ввод с клавиатуры Xa=(A*100)/N;//Нахождение процента пятёрок Xb=(B*100)/N;//Нахождение процента четвёрок Xc=(C*100)/N;//Нахождение процента троек cout<<"Xa="< cout<<"Xb="< cout<<"Xc="< }
Задача 1.3. Ширина обоев 70 см. Сколько метров обоев надо купить для ремонта квартиры.
конец n n=S:0.7 S=a*b a, b начало a – длина комнаты. b – ширина комнаты. n – количество обоев.
#include "iostream" #include using namespace std; void main() {float a,b,S,n,h; cout<<"Vvesti a,b,h"< cin>>a>>b>>h;//Ввод с клавиатуры а b и h. S=2*(a*h)+(b*h);//Нахождение площади стен комнаты. n=S/0.7;//Нахождение площади стен комнаты. cout<<"S="< cout<<"n="< }
Задача 2.1. Даны вещественные координаты точки, не лежащей на координатных осях OX и OY. Вывести номер координатной четверти, в которой находится данная точка.
начало x – ось абсцисс. y – ось ординат. x, y 1 – первая четверть. 2 – вторая четверть. x>0 y>0 y 3 – третья четверть. 4 – четвёртая четверть. + - - x>0 y<0 y 1 4 3 x<0 y<0 y 2 + - конец + -
#include "iostream" #include using namespace std; void main() {int x,y; cout<<"Vvesti x="; cin>>x;//Ввод x с клавиатуры cout<<"Vvesti y="; cin>>y;//Ввод y с клавиатуры if(x>0&&y>0)cout<<"1";else//Условие, иначе следующее условие if(x>0&&y<0)cout<<"2";else//Условие, иначе следующее условие if(x<0&&y<0)cout<<"3";else cout<<"4";//Условие, иначе вывод 4 четверти }
Задача 2.2. Составьте программу, проверяющую, верно ли утверждение, что введённое вами целое число является чётным.
начало конец чётное нечётное a/2=0 y>0 y a a – целое число. + -
#include "iostream" using namespace std; void main() {setlocale(LC_ALL,"Russian"); int a; cout<<"a="; cin>>a;//Ввод с клавиатуры a. if(a%2==0)cout<<"чётное";//Если а разделить на 2 равно нулю, то число чётное. else cout<<"нечётное";//Иначе нечётное. }
Задача 2.3. Найти значение выражения: а) b) .
начало ≠ x конец нет решения k,n n= k= x≠5 x≠7 x≠-3 y>0 y + -
#include "iostream" #include using namespace std; void main() {setlocale(LC_ALL,"Russian"); float x,k,n; cout<<"x="; cin>>x;//Ввод с клавиатуры х if(x!=5 && x!=7 && x!=-3){k=1/(x-5);//Условие n=5/((x-7)*(x+3)); cout<<"k="< cout<<"n="< else cout<<"нет решения"; }
Задача 3.1. Дано натуральное число n. Вычислить n!
начало n n – натуральное число. i=0; i<6; i++ n<=1 - return 1 return n*factorial !(n-1) конец
#include "iostream" using namespace std; int factorial(int k) { if(k<=1)return(1);//Условие, если к<=1, то возвращаем 1 else return(k*factorial(k-1)); } void main() { int n,f; for(int i=0;i<6;i++) {cout<<"n="; cin>>n;//Ввод с клавиатуры n f=factorial(n);//Присваивание факториала от n cout< }
Задача 3.2. Ввести с клавиатуры М чисел. Найти произведение отрицательных чисел.
начало М – количество чисел. М i=0; i x[i]<0 + - S=S*x[i] A[M] конец
#include "iostream" #include using namespace std; int pro(int x[],int M) {int i; int S=1; for(i=0;i {if(x[i]<0)//Условие S=S*x[i];} return S; } void main() {setlocale(LC_ALL,"Russian"); {const int M=5;//Вводим количество элементов массива - 5 int A[M]; cout<<"Massiv"< for(int i=0;i {cin>>A[i];} cout<<"Произведение отрицательных чисел="< } }
Задача 3.3. Задано натуральное число N. Найти количество натуральных чисел, не превосходящих N и не делящихся ни на одно из чисел 2,3,5.
начало N – натуральное число. a a – количество чисел, удовлетворяющих условию задачи. p – вывод количества чисел. a=0; a<=N; a++ + - a%2!=0 a%3!=0 a%5!=0 p конец
#include "iostream" #include using namespace std; void main() { int a,N,p=0; cout<<"N="; cin>>N;//Ввод с клавиатуры числа for(a=0;a<=N;a++)//Цикл {if(a%2!=0 && a%3!=0 && a%5!=0)//Условие p++;} cout<
Задача 3.4. Бизнесмен взял ссуду m тысяч рублей в банке под 20% годовых. Через сколько лет его долг превысит s тысяч рублей, если за это время он не будет отдавать долг?
начало m, s m – ссуда (тысяч рублей) . s – число, с которым сравниваем . i=0 n –годовой процент (в рублях). k – оплата за год. s>m m=m+m*0.2 i конец
#include "iostream" #include using namespace std; void main() {setlocale(0,""); float m,s,n,k; float i=0; cout<<"m="; cin>>m; cout<<"s="; cin>>s; n=(m/100.)*20;//Нахождение годового процента в валюте. k=m+n;//Оплата за год, вместе с комиссией. if(s>m) cout<<"Cсуда не превышает данную сумму";else {while(s>m) {m=m+m*0.2; i=i+1; }cout<<"Через "< }
Задача 3.5 Дано целое число N>2 и две вещественные точки на числовой оси: A, B (A
начало N – целое число. N>2, A, B A, B – вещественные числа. A>=B + - H=(B-A)/(N-1) Не верное условие! H x конец
#include "iostream" #include using namespace std; int main() {setlocale(LC_ALL,"Russian"); int N; cout<<"N="; cin>>N;//Ввод с клавиатуры целого числа N if(N<=2) {cout<<"Недопустимое значение переменной N"< float A,B,H,x; cout<<"A="; cin>>A;//Ввод с клавиатуры вещественного числа А cout<<"B="; cin>>B;//Ввод с клавиатуры вещественного числа В if(A>=B) {cout<<"Не верное условие!"< H=(B-A)/(N-1); cout<<"H="< |