- •Фгб оу впо «московский государственный университет
- •Файлы последовательного доступа
- •Файлы произвольного доступа
- •Операции над файлами
- •Задача 1.1
- •Задача 1.2
- •Задача 1.3.
- •Задача 2.1.
- •Задача 2.2.
- •Задача 2.3.
- •Задача 3.1.
- •Задача 3.2.
- •Задача 3.3.
- •Задача 3.4.
- •Задача 3.5
- •Задача 4.1
- •Задача 4.2
- •Задача 4.3
- •Задача 4.4
- •Задача 5.1
- •Задача 5.2
- •Задача 5.3
- •Задача 5.5
- •Задача 6.1
- •Задача 6.2
- •Задача 6.3
- •Задача 6.4
- •Задача 7.1
- •Задача 7.3
- •Задача 7.4
- •Задача 8.1
Задача 3.2.
Ввести с клавиатуры М чисел. Найти произведение отрицательных чисел.
Блок-схема.
начало
М – количество чисел.
М
i=0; i<M; i++
x[i]<0
+ -
S=S*x[i]
A[M]
конец
Программный код.
#include "iostream"
#include <math.h>
using namespace std;
int pro(int x[],int M)
{int i;
int S=1;
for(i=0;i<M;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"<<endl;//Вывод массива
for(int i=0;i<M;i++)
{cin>>A[i];}
cout<<"Произведение отрицательных чисел="<<pro(A,M)<<endl;
}
}
Скриншот.
Задача 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 <math.h>
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<<p;}//Вывод количества чисел, удовлетворяющих условию
Скриншот.
Задача 3.4.
Бизнесмен взял ссуду mтысяч рублей в банке под 20% годовых. Через сколько лет его долг превыситsтысяч рублей, если за это время он не будет отдавать долг?
Блок-схема.
начало
m, s
m– ссуда (тысяч рублей) .
s– число, с которым сравниваем .
i=0
n–годовой процент (в рублях).
k – оплата за год.
s>m
m=m+m*0.2
i
конец
Программный код.
#include "iostream"
#include <math.h>
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<<"Через "<<i<<" года долг превысит ";}
}
Скриншот.
Задача 3.5
Дано целое число N>2 и две вещественные точки на числовой оси:A,B(A<B). Отрезок [A,B] разбит на равные отрезки длины Н с концами вNточках вида А,А+Н,А+2Н, А+3Н,…, В. Вывести значение Н и набор изNточек, образующий разбиение отрезка [A,B].
Блок-схема.
начало
N– целое число.
N>2, A, B
A,B– вещественные числа.
A>=B
+ -
Не верное условие!
H=(B-A)/(N-1)
H
x
конец
Программный код.
#include "iostream"
#include <math.h>
using namespace std;
int main()
{setlocale(LC_ALL,"Russian");
int N;
cout<<"N=";
cin>>N;//Ввод с клавиатуры целого числа N
if(N<=2) {cout<<"Недопустимое значение переменной N"<<endl; return 0;}
float A,B,H,x;
cout<<"A=";
cin>>A;//Ввод с клавиатуры вещественного числа А
cout<<"B=";
cin>>B;//Ввод с клавиатуры вещественного числа В
if(A>=B) {cout<<"Не верное условие!"<<endl; return 0;}//
H=(B-A)/(N-1);
cout<<"H="<<H<<endl;
x=A;//Переменной х присваиваем значение вещ-ного числа А
while(x<=B)
{
cout<<"x="<<x<<endl;
x=x+H;//Шаг
}
}
Скриншот.