Составьте таблицу, по образцу. В качестве фамилий и имён внесите данные своей группы. В ячейке «Средний » используйте функцию «СРЗНАЧ». В ячейке «Статус ученика» составьте формулу, которая выдаёт следующие значения:
если средний = 5, то «Отличник»;
если средний от 4 до 5, то «Хорошист»;
в противном случае — «Троечник»
Напишите формулу, чтобы найти "статус ученика"
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "Russian");
int str;
cout << "Введите количество произведений: ";
cin >> str;
string glasnie = "ауоыиэяюеё";
string soglasnie = "бвгджзйклмнпрстфхцчшщ";
string * text = new string[str];
string buffer;
cin.get();
for (int i = 0; i < str ; i++)
{
cout << "Название [" << i + 1 << "]: ";
getline(cin, buffer);
text[i] += buffer;
}
cout << "\nСортировка по самому длинному названию: " << endl;
for (int i = 0; i < str - 1; i++)
{
for (int j = i + 1; j < str; j++)
{
if (text[i].length() < text[j].length())
{
string box = text[i];
text[i] = text[j];
text[j] = box;
}
}
}
for (int i = 0; i < str; i++)
{
cout << text[i] << endl;
}
cout << "\nСамое большое количество символов: " << text[0] << endl;
cout << "Самое малое количество символов: " << text[str-1] << endl;
int glasn_max = 0;
int glasn_min = 0;
string gmax, gmin;
bool check = 0;
for (int i = 0; i < str; i++)
{
int counter = 0;
for (int j = 0; j < text[i].length(); j++)
{
for (int k = 0; k < glasnie.length(); k++)
{
if (text[i][j] == glasnie[k])
{
counter++;
}
}
}
if (check == 0)
{
check = 1;
glasn_min = counter;
gmin = text[i];
}
if (glasn_max < counter)
{
glasn_max = counter;
gmax = text[i];
}
if(glasn_min > counter)
{
glasn_min = counter;
gmin = text[i];
}
}
cout << "\nСамое большое кол-во гласных: " << gmax << endl;
cout << "Самое малое кол-во гласных: " << gmin << endl;
int sglasn_max = 0;
int sglasn_min = 0;
string sgmax, sgmin;
check = 0;
for (int i = 0; i < str; i++)
{
int counter = 0;
for (int j = 0; j < text[i].length(); j++)
{
for (int k = 0; k < soglasnie.length(); k++)
{
if (text[i][j] == soglasnie[k])
{
counter++;
}
}
}
if (check == 0)
{
check = 1;
sglasn_min = counter;
sgmin = text[i];
}
if (sglasn_max < counter)
{
sglasn_max = counter;
sgmax = text[i];
}
if (sglasn_min > counter)
{
sglasn_min = counter;
sgmin = text[i];
}
}
cout << "\nСамое большое кол-во согласных: " << sgmax << endl;
cout << "Самое малое кол-во согласных: " << sgmin << endl;
delete[] text;
return 0;
}
Объяснение:
Писал в visual studio. Как работает: Вводишь число произведений, далее вводишь названия произведений. Ввел одно название, жмешь Enter, вводишь следующее название и так до конца.
Код получился большим относительно, можно меньше, но тогда будет немного сложен для начинающих программистов, поэтому писал максимально простым языком.
const
n=30;
var
x:array[1..n] of integer;
i,k,s: integer;
begin
Randomize;
Writeln('Результаты сдачи');
k:=0; s:=0;
for i:=1 to n do
begin
x[i]:=Random(101);
Write(x[i]:4);
if x[i]>20 then begin s:=s+x[i]; Inc(k) end
end;
Writeln;
Writeln('Средний сдавших равен ',s/k:6:3)
end.
Тестовое решение:
Результаты сдачи
39 10 74 74 46 61 22 11 6 48 17 62 21 98 69 54 12 4 38 72 53 46 92 16 87 67 34 44 45 86
Средний сдавших равен 57.913