fedor1daniil12
04.02.2022 08:24

С++ Шаблони функцій.

Завдання 1

Написати шаблони функцій для роботи з одновимірним масивом:
a. введення елементів масиву,
b. виводу елементів масиву на екран,
c. пошуку першого входження елемента у масив(індексу входження, повертати -1, якщо не знайдено)
d. пошуку останнього входження елемента у масив,
e. перемішування елементів масиву випадковим чином(декілька разів поміняти місцями елементи з випадковими індексами)
f. заповнення масиву однаковим заданим значенням
g. впорядкування за зростанням
h. впорядкування за спаданням

Для пошуку першого входження елемента у масиві символів(char[]) написати звичайну функцію (яка перекриє шаблон) таким чином,
щоб ігнорувалася різниця між великими та малими латинськими літерами рядків

Протестувати роботу шаблонних функцій для масивів
цілого,
дробового,
символьного типу(char) та
рядкового(string) типу.

Завдання 2

Написати шаблони функцій для роботи з двовимірним масивом(або тривимірним):
a. введення двовимірного(або тривимірного) масиву
b. виведення масиву на екран
c. знаходження найбільшого елемента масиву
template
T maxInMatrix(T m[][COLS], int rows, int cols)
{
T m = arr[0][0];
…….
return m;
}
або
template
auto maxInMatrix(T m, int rows, int cols)
{
auto m = arr[0][0];
…….
return m;
}
d. перевірка чи заданий рядок матриці впорядкований за зростанням (шаблон функції повертає логічне значення), функція отримує додатково індекс рядка
якщо індекс не коректний повертати хибу
e. перевірка чи всі (кожен) рядки матриці впорядковані за зростанням (шаблон функції повертає логічне значення).

Перевірити роботу шаблонів функцій для матриць числового та рядкового(string) типів.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
serjo1216
15.05.2022 12:47
1)
 var 
n:integer;
begin 
readln(n); 
if(n<0)then write(0) 
else write(n+4);
end.

2)
 var
  a, b: integer;
 begin
  readln(a, b);
  if(a = b) then
write(1)
  else
write(0);
end.

3)
var
  a, b, c, s: integer;
 begin
  s := 0;
  readln(a, b, c);
  if(a >= 0) then s := s + 1;
  if(b >= 0) then s := s + 1;
  if(c >= 0) then s := s + 1;
  write(s);
end.

4)
var
  a, b, c, s: integer;
 begin
  s := 0;
  readln(a, b, c);
  if(a > 0) then s := s + a;
  if(b > 0) then s := s + b;
  if(c > 0) then s := s + c;
  write(s);
end.
5)
 var
  a, b, c: integer;
 begin
  readln(a, b, c);
  if (a < b) then swap(a, b);
  if (a < c) then swap(a, c);
  if (b < c) then swap(b, c);
  write(a, ' ', b, ' ', c);
end.

6)
 var n, k, s, i: integer;
 begin
  s := 0;
  readln(n, k);
  for i := 1 to n.ToString.Length do
  if(strtoint(n.ToString[i]) > k) then s := s + strtoint(n.ToString[i]);
  write(s);
 end.

7)
 var n, s, i: integer;
 begin
  s := 0;
  readln(n);
  for i := 1 to n do
    s := s + i;
  write(s);
 end.

9)
 var n, i: integer;
 begin
  readln(n);
  for i := n downto 1 do
  write(i);
 end.

12
 var
  n, i: integer;
  s: real;
 begin
  s := 0;
  readln(n);
  for i := n downto 1 do
  s:=s+(0.1*i);
    write(s);
 end.

13)
 var n, i: integer;
 begin
  readln(n);
  for i := 1 to n do
    write(sqr(i), ' ');
end.

14)
 var
  n, i, c: integer;
 begin
  i := 1;
  c := 0;
  readln(n);
  while (c <> n) do
  begin
    if(i mod 3 = 0) then begin write(i, ' ');c := c + 1; end;
    i := i + 1;
  end;
end.

15)
 var
  n, i, a: integer;
  c: real;
 begin
  i := 1;
  c := 0;
  readln(n);
  for i := 1 to n do
   begin
    read(a);
    c := c + a;
  end;
  write(c / n)
end.

16)
 var
  n, i, a: integer;
 begin
  i := 1;
  while true do
   begin
    read(a);
    if(a = 0) then break;
    n := n + 1;
  end;
  write(n)
end.
0,0(0 оценок)
Ответ:
ninakamenskix2000
15.05.2022 12:47
Var
    N, s, i: Integer;
    s1: real;

begin
    readln(N); {общий ввод для всех задач}
    
    if N < 0 then
        writeln('Задача 1. N=', 0)
    else writeln('Задача 1. N=', N + 4);
    
    s := 0;
    for i := 1 to n do
        s := s + i;
    writeln('Задача 7. 1+2+3+…+N=', s);
    
    write('Задача 9. Последовательность от N до 1 = ');
    for i := n downto 1 do
        write(i, ' ');
    writeln();
    
    s1 := 0;
    for i := 1 to n do
        s1 := s1 + i / 10;
    writeln('Задача 12. 0,1+0,2+0,3+..+N/10=', s1);
    
    write('Задача 13. Последовательность квадратов от 1 до N = ');
    for i := 1 to n do
        write(i * i, ' ');
    writeln();
    
    write('Задача 14. Последовательность первых N нечетных чисел = ');
    for i := 1 to n do
        write(2 * i - 1, ' ');
    writeln();
    
    if N > 0 then
        writeln('Задача 20. N степень 3 = ', frac(ln(n) / ln(3)) = 0);
    
    s := 0;
    for i := 1 to n do
        if n mod i = 0 then
            s := s + i;
    writeln('Задача 24. Сумма всех натуральных делителей числа N (сключая 1 и N) = ', s);
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота