0 / 0 / 1
Регистрация: 19.09.2020
Сообщений: 48
|
|
1 | |
Превратить сообщение азбуки Морза 64 символа в графическое изображение размером 8*814.01.2021, 14:44. Просмотров 1467. Ответов 11
Метки Pascal (Паскаль) (Все метки)
здравствуйте, помогите , пожалуйста, с решением задачи : Разработать программу на языке программирования
Паскаль. Превратить сообщение азбуки Морза 64 символа в графическое изображение размером 8*8.
0
|
|
14.01.2021, 14:44 | |
StretchBlt: из bmp размером 30х30 вывести на экран изображение размером 100х100 Графическое изображение
|
|
2062 / 942 / 378
Регистрация: 19.03.2019
Сообщений: 3,065
|
|
14.01.2021, 14:56 | 2 |
0
|
0 / 0 / 1
Регистрация: 19.09.2020
Сообщений: 48
|
|
14.01.2021, 15:10 [ТС] | 3 |
Хороший вопрос)
Просто поставили перед фактом в задаче, но как я понял, нужно написать программу, которая преобразовывала введенные символы азбуки Морзе в графическое изображение( может быть с помощью Point и тому подобному?) Добавлено через 9 минут Или, может нужно ввести сообщение, содержащее 64 символа азбуки Морзе, и вывести изображение 8 на 8. Извините за такой разброс, но задача крайне непонятная, но ее необходимо решить)
0
|
2062 / 942 / 378
Регистрация: 19.03.2019
Сообщений: 3,065
|
|
14.01.2021, 15:20 | 4 |
![]() Решение
qwert10, я лично ничего не понял. и мой тебе совет - обратись к тому, кто тебе дал задачу за разъяснениями. попроси пример дать того, что на входе и что нужно получить на выходе.
иначе тут без телепатии и магического хрустального шара не обойтись. Добавлено через 2 минуты либо возьми решение отсюда Азбука Морзе
1
|
0 / 0 / 1
Регистрация: 19.09.2020
Сообщений: 48
|
|
14.01.2021, 15:20 [ТС] | 5 |
я прекрасно это понимаю, и сам такого же мнения. Но, думаю, Вы тоже осознаёте, какое существует отношение у преподавателей к студентам( просто дали список задач и все - делайте как хотите). Но в любом случае, спасибо за ответы!)
0
|
Модератор
62540 / 46714 / 32197
Регистрация: 18.05.2008
Сообщений: 113,060
|
|
14.01.2021, 15:32 | 6 |
0
|
0 / 0 / 1
Регистрация: 19.09.2020
Сообщений: 48
|
|
14.01.2021, 15:35 [ТС] | 7 |
mr-Crocodile, Я так понимаю, классическая задача, чтобы завалить во время сессии)
0
|
2062 / 942 / 378
Регистрация: 19.03.2019
Сообщений: 3,065
|
|
14.01.2021, 16:10 | 8 |
qwert10, скорее, задача, которая очень плохо сформулирована (сам препод придумал, сам и знает, что он хочет получить - остальным нужно догадываться).
0
|
276 / 259 / 111
Регистрация: 23.01.2018
Сообщений: 872
|
|
15.01.2021, 12:13 | 9 |
Может, подразумевалось вот это? Лень калякать на Pascal, написал на APL. Если нужно именно это, могу перевести на Pascal.
Код
8 8⍴'.-'[?64⍴2] -.---.-- -.--..-. -.----.- -.--..-. .....--. --...... ..----.. ----.-..
0
|
2062 / 942 / 378
Регистрация: 19.03.2019
Сообщений: 3,065
|
|
15.01.2021, 14:15 | 10 |
по ссылке в пост #4 код написанный Puporev именно это и делает - раскладывает (выводит) одну строчку длиной 64 символа на 8 строчек по 8 символов в каждой строке.
1
|
Модератор
8334 / 4106 / 2847
Регистрация: 17.08.2012
Сообщений: 13,101
|
|||||||||||||||||||||||||||||||||||||||
15.01.2021, 23:54 | 11 | ||||||||||||||||||||||||||||||||||||||
Под символами имеются ввиду точки, тире, паузы между буквами и паузы между словами этой самой азбуки Морзе. Почему не сами буквы? А потому, что тогда и будет сохранён текст, а не сообщение на азбуке Морзе.
Что вообще есть в сообщении на азбуке Морзе, и как это обозначается на бумаге?
Паузу внутри символа кодировать не нужно (по сути, тире или точка состоят из тире или точки и паузы в 1 единицу). Паузу между словами можно заменить двумя паузами между символами. Это логично, если печатать сообщение в виде строки, тогда между буквами будет по одному символу пробела, а между словами - по два символа пробела. Тогда азбуку Морзе можно закодировать, например, так:
Пустой символ нужен для заполнения свободного места в изображении, когда размер изображения больше размера сообщения. Удобнее всего, по моему мнению, в качестве носителя использовать файл 8 бит на точку с палитрой 256 цветов, без сжатия, естественно. Структура такого файла неизменна. Максимально простая программа, подойдёт для любого диалекта паскаля, и не требует никаких библиотек для работы с изображениями:
Содержимое этого файла
Код
// #### Заголовок файла BitMapFileHeader { 0} $42,$4D, //bfType = 'BM', сигнатура { 2} $76,$04,$00,$00, //bfSize = 1142, размер файла { 6} $00,$00,$00,$00, //bfReserved1 = 0, bfReserved2 = 0, зарезервировано, всегда 0 { 10} $36,$04,$00,$00, //bfOffsetBits = 1078, смещение изображения от начала файла // #### Информационный заголовок BitMapInfoHeader { 14} $28,$00,$00,$00, //biSize = 54-14 = 40, длина заголовка BitMapInfoHeader { 18} $08,$00,$00,$00, //biWidth = 8, ширина изображения, точки { 22} $08,$00,$00,$00, //biHeight = 8, высота изображения, точки { 26} $01,$00, //biPlanes = 1, число плоскостей изображения { 28} $08,$00, //biBitCount = 8, глубина цвета, бит на точку { 30} $00,$00,$00,$00, //biCompression = 0, тип компрессии (0 - несжатое изображение) { 34} $40,$00,$00,$00, //biSizeImage = 8*8 = 64 размер изображения, байт { 38} $00,$00,$00,$00, //biXPelsPerMeter = 0 горизонтальное разрешение, точки на метр (0 - стандартное) { 42} $00,$00,$00,$00, //biYPelsPerMeter = 0 вертикальное разрешение, точки на метр (0 - стандартное) { 46} $00,$00,$00,$00, //biColorsUsed = 0 число цветов (0 - максимально возможное для данной глубины цвета) { 50} $00,$00,$00,$00, //biColorsImportant = 0 число основных цветов // #### Палитра ColorTable, длина 256*4=1024 { 54} // +0 +1 +2 +3 {* 0+} $00,$00,$00,$00, $00,$00,$80,$00, $00,$80,$00,$00, $00,$80,$80,$00, {* 4+} $80,$00,$00,$00, $80,$00,$80,$00, $80,$80,$00,$00, $C0,$C0,$C0,$00, {* 8+} $C0,$DC,$C0,$00, $F0,$CA,$A6,$00, $00,$20,$40,$00, $00,$20,$60,$00, {* 12+} $00,$20,$80,$00, $00,$20,$A0,$00, $00,$20,$C0,$00, $00,$20,$E0,$00, {* 16+} $00,$40,$00,$00, $00,$40,$20,$00, $00,$40,$40,$00, $00,$40,$60,$00, {* 20+} $00,$40,$80,$00, $00,$40,$A0,$00, $00,$40,$C0,$00, $00,$40,$E0,$00, {* 24+} $00,$60,$00,$00, $00,$60,$20,$00, $00,$60,$40,$00, $00,$60,$60,$00, {* 28+} $00,$60,$80,$00, $00,$60,$A0,$00, $00,$60,$C0,$00, $00,$60,$E0,$00, {* 32+} $00,$80,$00,$00, $00,$80,$20,$00, $00,$80,$40,$00, $00,$80,$60,$00, {* 36+} $00,$80,$80,$00, $00,$80,$A0,$00, $00,$80,$C0,$00, $00,$80,$E0,$00, {* 40+} $00,$A0,$00,$00, $00,$A0,$20,$00, $00,$A0,$40,$00, $00,$A0,$60,$00, {* 44+} $00,$A0,$80,$00, $00,$A0,$A0,$00, $00,$A0,$C0,$00, $00,$A0,$E0,$00, {* 48+} $00,$C0,$00,$00, $00,$C0,$20,$00, $00,$C0,$40,$00, $00,$C0,$60,$00, {* 52+} $00,$C0,$80,$00, $00,$C0,$A0,$00, $00,$C0,$C0,$00, $00,$C0,$E0,$00, {* 56+} $00,$E0,$00,$00, $00,$E0,$20,$00, $00,$E0,$40,$00, $00,$E0,$60,$00, {* 60+} $00,$E0,$80,$00, $00,$E0,$A0,$00, $00,$E0,$C0,$00, $00,$E0,$E0,$00, {* 64+} $40,$00,$00,$00, $40,$00,$20,$00, $40,$00,$40,$00, $40,$00,$60,$00, {* 68+} $40,$00,$80,$00, $40,$00,$A0,$00, $40,$00,$C0,$00, $40,$00,$E0,$00, {* 72+} $40,$20,$00,$00, $40,$20,$20,$00, $40,$20,$40,$00, $40,$20,$60,$00, {* 76+} $40,$20,$80,$00, $40,$20,$A0,$00, $40,$20,$C0,$00, $40,$20,$E0,$00, {* 80+} $40,$40,$00,$00, $40,$40,$20,$00, $40,$40,$40,$00, $40,$40,$60,$00, {* 84+} $40,$40,$80,$00, $40,$40,$A0,$00, $40,$40,$C0,$00, $40,$40,$E0,$00, {* 88+} $40,$60,$00,$00, $40,$60,$20,$00, $40,$60,$40,$00, $40,$60,$60,$00, {* 92+} $40,$60,$80,$00, $40,$60,$A0,$00, $40,$60,$C0,$00, $40,$60,$E0,$00, {* 96+} $40,$80,$00,$00, $40,$80,$20,$00, $40,$80,$40,$00, $40,$80,$60,$00, {*100+} $40,$80,$80,$00, $40,$80,$A0,$00, $40,$80,$C0,$00, $40,$80,$E0,$00, {*104+} $40,$A0,$00,$00, $40,$A0,$20,$00, $40,$A0,$40,$00, $40,$A0,$60,$00, {*108+} $40,$A0,$80,$00, $40,$A0,$A0,$00, $40,$A0,$C0,$00, $40,$A0,$E0,$00, {*112+} $40,$C0,$00,$00, $40,$C0,$20,$00, $40,$C0,$40,$00, $40,$C0,$60,$00, {*116+} $40,$C0,$80,$00, $40,$C0,$A0,$00, $40,$C0,$C0,$00, $40,$C0,$E0,$00, {*120+} $40,$E0,$00,$00, $40,$E0,$20,$00, $40,$E0,$40,$00, $40,$E0,$60,$00, {*124+} $40,$E0,$80,$00, $40,$E0,$A0,$00, $40,$E0,$C0,$00, $40,$E0,$E0,$00, {*128+} $80,$00,$00,$00, $80,$00,$20,$00, $80,$00,$40,$00, $80,$00,$60,$00, {*132+} $80,$00,$80,$00, $80,$00,$A0,$00, $80,$00,$C0,$00, $80,$00,$E0,$00, {*136+} $80,$20,$00,$00, $80,$20,$20,$00, $80,$20,$40,$00, $80,$20,$60,$00, {*140+} $80,$20,$80,$00, $80,$20,$A0,$00, $80,$20,$C0,$00, $80,$20,$E0,$00, {*144+} $80,$40,$00,$00, $80,$40,$20,$00, $80,$40,$40,$00, $80,$40,$60,$00, {*148+} $80,$40,$80,$00, $80,$40,$A0,$00, $80,$40,$C0,$00, $80,$40,$E0,$00, {*152+} $80,$60,$00,$00, $80,$60,$20,$00, $80,$60,$40,$00, $80,$60,$60,$00, {*156+} $80,$60,$80,$00, $80,$60,$A0,$00, $80,$60,$C0,$00, $80,$60,$E0,$00, {*160+} $80,$80,$00,$00, $80,$80,$20,$00, $80,$80,$40,$00, $80,$80,$60,$00, {*164+} $80,$80,$80,$00, $80,$80,$A0,$00, $80,$80,$C0,$00, $80,$80,$E0,$00, {*168+} $80,$A0,$00,$00, $80,$A0,$20,$00, $80,$A0,$40,$00, $80,$A0,$60,$00, {*172+} $80,$A0,$80,$00, $80,$A0,$A0,$00, $80,$A0,$C0,$00, $80,$A0,$E0,$00, {*176+} $80,$C0,$00,$00, $80,$C0,$20,$00, $80,$C0,$40,$00, $80,$C0,$60,$00, {*180+} $80,$C0,$80,$00, $80,$C0,$A0,$00, $80,$C0,$C0,$00, $80,$C0,$E0,$00, {*184+} $80,$E0,$00,$00, $80,$E0,$20,$00, $80,$E0,$40,$00, $80,$E0,$60,$00, {*188+} $80,$E0,$80,$00, $80,$E0,$A0,$00, $80,$E0,$C0,$00, $80,$E0,$E0,$00, {*192+} $C0,$00,$00,$00, $C0,$00,$20,$00, $C0,$00,$40,$00, $C0,$00,$60,$00, {*196+} $C0,$00,$80,$00, $C0,$00,$A0,$00, $C0,$00,$C0,$00, $C0,$00,$E0,$00, {*200+} $C0,$20,$00,$00, $C0,$20,$20,$00, $C0,$20,$40,$00, $C0,$20,$60,$00, {*204+} $C0,$20,$80,$00, $C0,$20,$A0,$00, $C0,$20,$C0,$00, $C0,$20,$E0,$00, {*208+} $C0,$40,$00,$00, $C0,$40,$20,$00, $C0,$40,$40,$00, $C0,$40,$60,$00, {*212+} $C0,$40,$80,$00, $C0,$40,$A0,$00, $C0,$40,$C0,$00, $C0,$40,$E0,$00, {*216+} $C0,$60,$00,$00, $C0,$60,$20,$00, $C0,$60,$40,$00, $C0,$60,$60,$00, {*220+} $C0,$60,$80,$00, $C0,$60,$A0,$00, $C0,$60,$C0,$00, $C0,$60,$E0,$00, {*224+} $C0,$80,$00,$00, $C0,$80,$20,$00, $C0,$80,$40,$00, $C0,$80,$60,$00, {*228+} $C0,$80,$80,$00, $C0,$80,$A0,$00, $C0,$80,$C0,$00, $C0,$80,$E0,$00, {*232+} $C0,$A0,$00,$00, $C0,$A0,$20,$00, $C0,$A0,$40,$00, $C0,$A0,$60,$00, {*236+} $C0,$A0,$80,$00, $C0,$A0,$A0,$00, $C0,$A0,$C0,$00, $C0,$A0,$E0,$00, {*240+} $C0,$C0,$00,$00, $C0,$C0,$20,$00, $C0,$C0,$40,$00, $C0,$C0,$60,$00, {*244+} $C0,$C0,$80,$00, $C0,$C0,$A0,$00, $F0,$FB,$FF,$00, $A4,$A0,$A0,$00, {*248+} $80,$80,$80,$00, $00,$00,$FF,$00, $00,$FF,$00,$00, $00,$FF,$FF,$00, {*252+} $FF,$00,$00,$00, $FF,$00,$FF,$00, $FF,$FF,$00,$00, $FF,$FF,$FF,$00, // #### Изображение Image, по строкам слева направо и СНИЗУ ВВЕРХ, длина = 8*8 = 64 {1078} $00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00, То, что под спойлером, можно использовать как шаблон для создания .BMP файлов.
0
|
Модератор
62540 / 46714 / 32197
Регистрация: 18.05.2008
Сообщений: 113,060
|
|
16.01.2021, 08:53 | 12 |
qwert10, А все-таки, какой у Вас Паскаль?
0
|
16.01.2021, 08:53 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Графическое изображение Графическое изображение
Графическое изображение множеств Построить графическое изображение Графическое изображение в движении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |