![]() |
|
Другие темы раздела | |
Pascal Установить в Debian что-нибудь похожее интерфейсом IDE на Turbo Pascal
https://www.cyberforum.ru/ pascal/ thread1260862.html Подскажите, что и как можно установить в Debian что-нибудь похожее интерфейсом IDE на Turbo Pascal. Спасибо. Добавлено через 3 минуты Да, ещё желательно, чтоб была совместимость с синтаксисом... |
Pascal В массиве удалить все элементы кратные заданному числу Задать три массива: один случайными целыми числами, второй вещественными положительными числами, третий - целыми числами в диапазоне значений от h до f. В первом массиве удалить все элементы кратные... |
Вывести K-e степени чисел из заданного набора Pascal Вариант4. Даны целые числа K, N и набор из N вещественных чисел: A1, A2, …,AN. Вывести K-e степени чисел из данного набора: (A1)^K, (A2)^K, …, (AN)^K. ^cтепень |
Pascal Вычислить значение y в зависимости от х функции очень нуждаюсь в помощи.. нужно вычислить значение y в зависимости от х функции... https://www.cyberforum.ru/ pascal/ thread1260635.html |
Pascal Задать массив вещественными числами от а до в, в количестве n и найти сумму всех цифр чисел кратных трем
https://www.cyberforum.ru/ pascal/ thread1260321.html Задать массив вещественными числами от а до в , в количестве n и найти сумму всех цифр чисел кратных трем |
Задать массив целыми числами в диапазоне [0.100] и удалить все элементы , у которых последняя цифра 8 Pascal Задать массив целыми числами в диапазоне и удалить все элементы , у которых последняя цифра 8 |
Pascal Если в строке, размещенной в динамической памяти, нет символа +, то оставить текст без изменения Если в строке,размещенной в динамической памяти,нет символа +,то оставить текст без изменения, иначе каждую из цифр, предшествующую первому вхождению символа + заменить символом -.помогите сделать на... |
Pascal Найти в последовательности самую длинную подпоследовательность, состоящую только из положительных чисел Найти в заданной последовательности самую длинную подпоследовательность, состоящую только из положительных чисел. используя текстовые файлы https://www.cyberforum.ru/ pascal/ thread1260267.html |
Pascal Написать программу, в которой задается число, а компьютер его угадывает
https://www.cyberforum.ru/ pascal/ thread1259883.html помогите пожалуйста, написать программу, в которой я задаю число, а компьютер угадывает это число. количество попыток ограничено ? |
Pascal Дан текст содержащий сведения об успеваемости учащихся. Определить средний балл каждого ученика Задача:Дан текст содержащий сведения об успеваемости учащихся, разделенное запятой.Каждое сведение содержит фамилию, имя ученика и оценки по 4 предметам, и заканчивается ".". Определить средний... https://www.cyberforum.ru/ pascal/ thread1259643.html |
Супер-модератор
![]() ![]() |
||||||||||||||||||||||||||||||||||||
22.09.2014, 21:16 [ТС] | 0 | |||||||||||||||||||||||||||||||||||
Как не надо писать программы22.09.2014, 21:16. Просмотров 17364. Ответов 4
Метки (Все метки)
Ответ
(продолжаем...)
Турбо Паскаль и нехватка памяти / ошибки №48, №49 В связи с возросшим количеством вопросов на темы "Программе не хватает памяти, что делать", "Ошибка компиляции №48 (или №49), помогите", "Программа вылетает с переполнением стека, куда копать?", хотелось бы привести основные моменты, на которые стоит обратить внимание при написании программ. Особенно рекомендуется к прочтению новичкам в написании сложных, развернутых проектов, в частности таких, которые собираются из нескольких уже работающих по отдельности фрагментов. (все написанное ниже относится только к программированию в Турбо Паскале, многое из этого в более современных компиляторах уже неактуально, хотя кое что может и пригодиться) Ошибка №48 - Code segment too large (сегмент кода слишком большой). Возникает в случае, когда размер кода, получаемого при компиляции программы, превышает 65520 байт (то есть, размер одного сегмента). С этой ошибкой бороться относительно легко, и путей борьбы здесь несколько.
Как пример (из реальной программы, по которой был задан подобный вопрос):
Отвлечемся ненадолго от ошибки №48, и посмотрим ... Ошибка №49: Data segment too large (слишком большой сегмент данных) Это происходит в случае, когда общий размер данных (глобальных данных, нужно заметить, потому что локальные размещаются не в сегменте данных) всех модулей превышает отведённый для них размер в 65520 байт. Простым разбиением на модули эту ошибку побороть нельзя: дело в том, что программа на Паскале может содержать несколько сегментов кода, и только один (общий для всех модулей) сегмент данных. Так что, если каждый из ваших модулей по отдельности компилируется - это ещё ничего не значит, при линковке exe-файла все ещё может "всплыть" сообщение об ошибке №49. Например: Первый модуль:
Но и с этой ошибкой можно бороться. И тоже не одним способом: Способ первый - проверяем, действительно ли нужны массивы типа LongInt. Как пример: нужно хранить в массиве рост 10000 школьников с точностью до сантиметра. И зачем тут longint? Достаточно типа byte (поправьте меня, если я ошибаюсь, но рост более 255 сантиметров для школьника - глупо), экономия четырехкратная. После изменения базового типа на byte даже только в одном из модулей мы избавляемся от "ошибки №49". Особое внимание обратите на строковые типы: по умолчанию для string-а резервируется 256 байт. Это не всегда нужно, можно существенно уменьшить размер данных ограничением длины строки через string[длина]. То же самое касается вещественных типов: вместо использования real (6 байт) используем single (4 байта). Во-первых, экономия памяти в случае использования массивов, во вторых - увеличение быстродействия программы (тип real вообще очень медленный, поскольку он является "чужеродным" для сопроцессора, и его конвертация в сопроцессорный тип занимает кучу времени). Способ второй - используем динамическое выделение памяти вместо статического, в результате данные хранятся не в сегменте данных, а в "куче", следовательно, опять избавляемся от ошибки №49: Модуль №1
Вернуться к обсуждению: Как не надо писать программы
5
|
|
22.09.2014, 21:16 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь. Надо ли в конце программы до end писать readln Помогите писать на С++ через шаблоны. Консуле я писал, но надо писать исползуя шаблоны Как создать программу которая бы выводила рандомно примеры и надо было правильно писать ответы как писать программы |
|