- •Фгб оу впо «московский государственный университет
- •Файлы последовательного доступа
- •Файлы произвольного доступа
- •Операции над файлами
- •Задача 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
Задача 5.5
Дано число к и матрица размера 4х9. После строки матрицы с номером к вставить строку из нулей.
Блок-схема.
начало
a[n][m]
k1
j=0; j<m; j++
+ -
i=0; i<k1-1; i++
+ -
b[i][j]=a[i][j]
b[k1][j]=0
i=k1; i<n; i++
+ -
b[i+1][j]=a[i][j]
a[n][m]
конец
Программный код.
#include "iostream"
#include <time.h.>
using namespace std;
void main()
{
setlocale (LC_ALL, "Russian");
srand(time(NULL));
const int n=4, m=9;
int a[n][m];
int b[n+1][m];
int k1;
int i,j;
//Ввод
cout<<"Ввести индекс строки k1 ";
cin>>k1;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
a[i][j]=10+rand()%90;
//Вывод исходной матрицы
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
cout<<endl;
//Решение
for(j=0;j<m;j++)
{for(i=0;i<=k1-1;i++)
b[i][j]=a[i][j];
b[k1][j]=0;
for(i=k1;i<n;i++)
b[i+1][j]=a[i][j];}
//Вывод, после добавления строки из нулей
for(i=0;i<=n;i++)
{for(j=0;j<m;j++)
cout<<b[i][j]<<" ";
cout<<endl;}
}
Скриншот.
Задача 6.1
Напишите программу, которая подсчитывает стоимость телеграммы, текст которой вводится с клавиатуры.
начало
Блок-схема.
cin.getline(str,50)
i, x, p, k
i=0; str[i]!=0;i++
+
x=i+1
k=x*p
Стоимость телеграммы -
конец
Программный код.
#include "iostream"
#include <string>
using namespace std;
void main()
{
setlocale (0, "");
char str[255];//Ввод элементов строки
cin.getline(str,50);
int i,x;
int p;
int k;
cout<<"Ввести p"<<endl;
cin>>p;
for(i=0;str[i]!='\0';i++)//Нахождение количества элементов
{x=i+1;}
{k=x*p;}
cout<<"Стоимость телеграммы = "<<k<<endl;
}
Скриншот.
Задача 6.2
Дана строка. Подсчитать количество содержащихся в ней прописных букв.
начало
Блок-схема.
cin.getline(str,50)
i, x=0
i=0; str[i]!=’\0’;i++
str[i]>=’A’ && str[i]<=’Z’
+ -
x=x+1
Кол-во прописных букв -
конец
Программный код.
#include "iostream"
#include <string>
using namespace std;
void main()
{
setlocale (LC_ALL, "Russian");
char str[255];//Ввод элементов строки
cin.getline(str,50);
int i,x=0;
for(i=0;str[i]!='\0';i++)//Нахождение количества элементов
{if(str[i]>='A' && str[i]<='Z') x=x+1;}
cout<<"Количество прописных букв в строке - "<<x<<endl;
}
Скриншот.
Задача 6.3
Дана строка, состоящая из русских слов, разделённых пробелами (одним или несколькими). Определить количество слов, которые содержат ровно три буквы «А».
начало
Блок-схема.
getline (cin,h)
i=0; i<h.size(); i++
- +
nnn=h.find(‘AAA’)!=string ::npos
+ -
nnn=nnn+1
AAA
+ -
nnn
return 0
конец
Программный код.
#include "iostream"
#include <string>
using namespace std;
int main()
{setlocale (0,"");
//int S=0;
string h;
cout<<"Введите строку:";
getline (cin,h);
string::size_type nnn;
for(int i=0;i<h.size();i++)
{if(nnn = h.find('AAA') != string::npos)
nnn=nnn+1;}
cout<<nnn;
return 0;
}
Скриншот.