Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 15.12.2013, 16:02   #1 (permalink)
Skywoker95_95
Новичок
 
Регистрация: 17.09.2013
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите написать программу на Паскале

Помогите написать программу. я не успеваю, у меня завал по всем предметам, прошу ребят помогите.
1. Выберите для представления длинных чисел подходящий тип (массив или строку). Помните, каждая из указанных структурн имеют преимущества и недостатки, которые будут влиять на реализацию алгоритмов обработки целых чисел в дальнейшем.
2. Объявите псевдоним TLong для представления типа целых чисел с числом разрядов не менее 255. В комментарии укажите, в каком порядке будут располагаться разряды длинного числа в вашем типе (в младших элементах - младшие разряды, или в младших элементах - старшие разряды).
3. Опишите процедуру инициализации переменной типа TLong: процедура должна иметь два параметра, один из которых - переменная для инициализации TLong, второй - строковое значение, которое содержит "естественную" запись длинного числа в виде последовательности цифр. Помните, что при использовании массива, следует обнулять его элементы, соответсвующие старшим разрядам длинного числа.
4. Опишите процедуру, которая осуществляет сложение двух длинных чисел. Подсказка: можно попробовать (не обязательно) использовать рекурсию - поразрядное сложение повторяющаяся регулярная операция. Не забудьте перенос в следующий разряд.
5. Опишите процедуру, которая выводит заданное длинное число на экран в "естественном" порядке.
6. Напишите программу, которая складывает длинные числа, хранящиеся в текстовом файле (количество чисел в файле неизвестно, но не менее одного).
Skywoker95_95 вне форума   Ответить с цитированием

Старый 15.12.2013, 16:02
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

На нашем форуме есть похожие темы, ознакомьтесь:

Помогите написать программу в Паскале
Помогите написать программу в Паскале

Старый 15.12.2013, 21:12   #2 (permalink)
Skywoker95_95
Новичок
 
Регистрация: 17.09.2013
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот числа которые находятся в файле middle.txt через ентер ( 928375892375972345729579824358
345872346782368462
873587136762347876826357678265
9837687874672). проблема в том программа выдает ошибку пишет, что индекс находится вне границ массива. и указывает на эту строчку: for i:=1 to u do s1[i]:=Chr(ch1[u-i+1]+48); Моежете помочь, как сделать что программа работала. Вот она сама. var s1,s2:string;
ch1,ch2:array[1..255] of integer;
fileIN: text;
p,i,u:integer;
begin
Assign(fileIN,'C:\Users\hp-pc\Documents\Война и мир\middle.txt');
Reset(fileIn);
readln(fileIN,s1);
while not eof(fileIN) do begin
readln(fileIN,s2);
p:=0;
for i:=1 to length(s1) do ch1[length(s1)-i+1]:=Ord(s1[i])-48;
for i:=1 to length(s2) do ch2[length(s2)-i+1]:=Ord(s2[i])-48;
if length(s1)>length(s2) then u:=length(s1)
else u:=length(s2);
for i:=1 to u do
begin
p:=p+ch1[i]+ch2[i];
ch1[i]:=p mod 10;
p:= p div 10;
end;
if p>0 then begin
inc(u);
ch1[u]:=p;
end;
for i:=1 to u do s1[i]:=Chr(ch1[u-i+1]+48);
end;
for i:=u downto 1 do write(ch1[i]);
close(fileIN);
end.
Skywoker95_95 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 22:49.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.