Дана задача турбо паскаля с несколькими ошибками, нужно исправить ошибки чтобы программа работала.
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.
Объяснение:
Если и считать всё в двоичной системе, то надо сначала все числа перевести в неё.
Перевод из шестнадцатеричной в двоичную- каждая шестнадцатеричная цифра заменяется на четыре двоичных, затем незначащие нули спереди- отбрасываются:
10₁₆ = 00010000₂ = 10000₂
Перевод из восьмеричной в двоичную- каждая восьмеричная цифра заменяется на три двоичных, затем незначащие нули спереди- отбрасываются:
10₈ = 001000₂ = 1000₂
Получаем в итоге пример:
10000₂ + 1000₂ + 10₂* 10000₂ = 10000₂ + 1000₂ + 100000₂ =
= 111000₂
ЯП: С++
#include <iostream>
int main() {
const int N = 5;
int arr[N][N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}; // создаем и заполняем двумерный массив 5x5
for (int i = 0; i < N; i++) // выводим на экран 2-мерный массив;
{
for (int j = 0; j < N; j++)
{
std::cout << arr[i][j] << "\t";
}
std::cout << std::endl;
}
std::cout << "Result #1: ";
for (int i = 0; i < N; i++) // вывод в консоль главной диагонали
{
std::cout << arr[i][i] << "\t";
}
std::cout << "\nResult #2: ";
for (int i = 0; i < N; i++) // вывод в консоль побочной диагонали
{
std::cout << arr[i][N - 1 - i] << "\t";
}
return 0;
}
Объяснение: