В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия

Дана задача турбо паскаля с несколькими ошибками, нужно исправить ошибки чтобы программа работала.
const m_ref=2; {программа для вывода библиографических ссылок.}
type select = ( book, magazine); { тип, задающий две альтернативы}
entry = record { фиксированная часть}
author, title,page : string[100];
year : 1..2200;
case tag: select of {вариантная часть}
book : (publisher,city:string[50]);
page :(1..10000);
magazine : (magazine_name:string[100]);
valume,issue:byte;
page_low, page_up:(1..10000);
ref_list = array[1..m_ref] of entry;
var x : ref_list;
procedure ReadRef(var rf:ref_list); {процедура ввода данных}
begin
with rf[1] do begin
tag := book;
author :='Ахо А.,Хопкрофт Дж., Ульман Дж.';
title:='Структуры данных и алгоритмы';
year:=2000;
page:=382;
pablisher :='Вильямс';
city := 'M.:';
end;
with rf[2] do begin
tag := magazine;
author :='Bayer R.S., Moore J.S.';
title:='A fast string searching algorithm';
year:=1977;
mag_name:='Communication ACM';
valume := 20;
issue := 10;
page_low :=762; page_up :=772;
end;
end;
procedure WriteRef(rf:ref_list); { процедура вывода}
var I: integer;
begin
for I:= 1 to m_ref do
with rf[I] do begin
writeln(I:2, auther, ' ',title,'.');
if rf[I].tag = book then writeln('_', city, publisher,'.',year,'.',page,'c.')
else writeln('_',mag_name,',',volume,',N',issue,',(',year,'),',
page_low,'_',page_up)
end
end;
Begin { основная программа}
ReadRef(x); WriteRef(x); readln
end
end
End.

Показать ответ
Ответ:
covepoxamu
covepoxamu
22.12.2022 10:12
Одно из решений, возможно, не самое эффективное
#include <iostream>
#include <iomanip>
int main()
{
    using namespace std;

    //исходная последовательность
    const int N = 8;
    double Arr[N] = { 14.2, -3.4, 7.8, -3.1, 8.2, 98.22, -7, 12 };

    //вывод на экран исходной последовательности
    for (int i = 0; i < N; ++i)
        cout << Arr[i] << "  ";
    cout << endl;

    //подсчитаем количества отрицательных и неотрицательных элементов
    int kpos = 0;
    int kneg = 0;
    for (int i = 0; i < N; ++i)
        if (Arr[i] < 0)
            ++kneg;
        else
            ++kpos;

    //создадим массивы отрицательных и неотрицательных элементов
    double * ArrNeg = new double[kneg];
    double * ArrPos = new double[kpos];

    int kn = 0, kp = 0;
    for (int i = 0; i < N; i++)
        if (Arr[i] < 0)
            ArrNeg[kn++] = Arr[i];
        else
            ArrPos[kp++] = Arr[i];

    cout << "Enter a, b, c or d: ";
    char ch;
    cin >> ch;

    if (ch == 'a' || ch == 'b' || ch == 'c' || ch == 'd')
    {
        switch (ch)
        {
            //пункт а)
            case 'a':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[i];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[i];
                break;

                //пункт б)
            case 'b':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[--kn];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[i];
                break;

                //пункт в)
            case 'c':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[i];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[--kp];
                break;

                //пункт г)
            case 'd':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[--kn];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[--kp];
                break;
        }
    }
    else
        cout << "You entered wrong symbol\n";

    for (int i = 0; i < N; ++i)
        cout << Arr[i] << "  ";
    cout << endl;
    delete[] ArrNeg;
    delete[] ArrPos;
    return 0;
}
0,0(0 оценок)
Ответ:
ilyazavrik
ilyazavrik
11.05.2020 05:21
#include <iostream>
#include <iomanip>
int main()
{
    using namespace std;
    const int N = 4;
    const int M = 4;
    int Y[N][M];

    //как-нибудь заполняем матрицу
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            Y[i][j] = (i + 1) * (j + 1);

    //выведем её на экран
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
            cout << setw(3) << Y[i][j];
        cout << endl;
    }
        
    //находим сумму элементов побочной диагонали
    int S = 0;
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            if (j == M - 1 - i)
                S = S + Y[i][j];
    cout << "Sum of adverse diagonal of array: " << S << endl;

    //находим сумму всех элементов матрицы
    int Sum = 0;
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            Sum = Sum + Y[i][j];
    cout << "Sum of all elements of array: " << Sum << endl;
    return 0;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота