М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
lionkeepo
lionkeepo
07.02.2020 13:43 •  Информатика

Имеется N аудиокассет. Про каждую известно: количество (до 20) записанных на ней песен или композиций, название и продолжительность (в минутах) каждого произведения, жанр (рок, романс, песня). Напечатать: а) название и продолжительность самой длинной песни;
б) название, жанр и продолжительность самого короткого музыкального произведения.
PascalABC

👇
Ответ:
firuzakushmano
firuzakushmano
07.02.2020
Хорошо, давайте решим данный вопрос.

Для начала, предлагаю создать структуру данных в PascalABC, которая будет содержать информацию о каждой аудиокассете. Для этого мы можем использовать следующую запись:

```
type
SongGenre = (rock, romance, song);

Cassette = record
title: string;
songsCount: integer;
songs: array [1..20] of record
name: string;
duration: real;
genre: SongGenre;
end;
end;

```

Теперь, создадим массив кассет с размерностью N и заполним его информацией о каждой аудиокассете.

```
var
cassettes: array [1..N] of Cassette;
i, j: integer;

begin
// Здесь ваш код для заполнения информации о каждой аудиокассете
end.
```

А) Для того чтобы найти название и продолжительность самой длинной песни, нам нужно пройти по всем аудиокассетам и сравнить продолжительности всех песен. Мы можем создать переменные для хранения самой длинной песни и ее продолжительности:

```
var
longestSongTitle: string;
longestSongDuration: real;
```

Затем мы проходим по всем кассетам и песням на каждой кассете, и если продолжительность песни больше, чем продолжительность самой длинной песни, мы обновляем значения переменных:

```
longestSongDuration := 0;

for i := 1 to N do
begin
for j := 1 to cassettes[i].songsCount do
begin
if cassettes[i].songs[j].duration > longestSongDuration then
begin
longestSongTitle := cassettes[i].songs[j].name;
longestSongDuration := cassettes[i].songs[j].duration;
end;
end;
end;
```

Теперь в переменных `longestSongTitle` и `longestSongDuration` будут храниться название и продолжительность самой длинной песни соответственно.

Б) Аналогичным образом, чтобы найти название, жанр и продолжительность самого короткого музыкального произведения, мы можем использовать ту же структуру логики. Создаем переменные для хранения самого короткого произведения:

```
var
shortestSongTitle: string;
shortestSongDuration: real;
shortestSongGenre: SongGenre;

shortestSongDuration := MAXINT; // Инициализация переменной значением максимально возможного числа
```

Затем мы проходим по всем кассетам и песням на каждой кассете, и если продолжительность песни меньше, чем продолжительность самого короткого произведения, мы обновляем значения переменных:

```
for i := 1 to N do
begin
for j := 1 to cassettes[i].songsCount do
begin
if cassettes[i].songs[j].duration < shortestSongDuration then
begin
shortestSongTitle := cassettes[i].songs[j].name;
shortestSongGenre := cassettes[i].songs[j].genre;
shortestSongDuration := cassettes[i].songs[j].duration;
end;
end;
end;
```

Теперь в переменных `shortestSongTitle`, `shortestSongGenre` и `shortestSongDuration` будут храниться название, жанр и продолжительность самого короткого произведения соответственно.

Наконец, мы можем напечатать результаты:

```
writeln('Название и продолжительность самой длинной песни:');
writeln('Название: ', longestSongTitle);
writeln('Продолжительность: ', longestSongDuration:0:2);

writeln('Название, жанр и продолжительность самого короткого музыкального произведения:');
writeln('Название: ', shortestSongTitle);
writeln('Жанр: ', shortestSongGenre);
writeln('Продолжительность: ', shortestSongDuration:0:2);
```

Это решение позволит нам найти и напечатать название и продолжительность самой длинной песни, а также название, жанр и продолжительность самого короткого музыкального произведения.
4,6(62 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ