Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2014, 15:04   #11
Veronika_13
Пользователь
 
Регистрация: 27.03.2014
Сообщений: 52
По умолчанию

не работает код. вообще запуталась
Veronika_13 вне форума Ответить с цитированием
Старый 06.04.2014, 15:16   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Проверил - работает. Может быть, Вы неправильно соединили эти 2 куска?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.04.2014, 15:25   #13
Veronika_13
Пользователь
 
Регистрация: 27.03.2014
Сообщений: 52
По умолчанию

извините меня за неумение, но мне настолько вытрепали мозг этой задачей, что я вообще не соображаю как это сделать
Veronika_13 вне форума Ответить с цитированием
Старый 06.04.2014, 15:46   #14
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Нужно самый верхний var в первом коде заменить на var из второго кода, самый последний begin..end в первом коде заменить на begin..end из второго кода.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.04.2014, 22:13   #15
Veronika_13
Пользователь
 
Регистрация: 27.03.2014
Сообщений: 52
По умолчанию

всё так и сделала, но переменные р и остальные оказались неизвестные и программа не пошла
Veronika_13 вне форума Ответить с цитированием
Старый 06.04.2014, 22:19   #16
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Покажите, как Вы их соединили.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.04.2014, 23:18   #17
Veronika_13
Пользователь
 
Регистрация: 27.03.2014
Сообщений: 52
По умолчанию

Код:
program lab_5;
uses crt;
var
  var
  sum, a: string;
  n, i: integer;

function max(a, b: integer): integer;
begin
  if a > b then
    max := a
  else
    max := b;
end;

function add(s1, s2: string): string;
var
  res: string;
  k, p, i, j, z: integer;
begin
  k := max(length(s1), length(s2));
  p := k - length(s1);
  for i := 1 to p do
    s1 := '0' + s1;
  p := k - length(s2);
  for i := 1 to p do
    s2 := '0' + s2;
  res := '';
  z := ord('0');
  p := 0;
  for i := k downto 1 do
  begin
    j := ord(s1[i]) + ord(s2[i]) - 2 * z + p;
    res := chr(j mod 10 + z) + res;
    p := j div 10;
  end;
  if p > 0 then
    res := chr(p + z) + res;
  add := res;
end;

begin
  readln(n);
  sum := '0';
  for i := 1 to n do
  begin
    readln(a);
    sum := add(sum, a);
  end;
  writeln(sum);
end.
end.

Последний раз редактировалось Stilet; 06.04.2014 в 23:53.
Veronika_13 вне форума Ответить с цитированием
Старый 06.04.2014, 23:44   #18
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Код:
var
  sum, a: string;
  n, i: integer;
  
function max(a, b: integer): integer;
begin
  if a > b then
    max := a
  else
    max := b;
end;

function add(s1, s2: string): string;
var
  res: string;
  k, p, i, j, z: integer;
begin
  k := max(length(s1), length(s2));
  p := k - length(s1);
  for i := 1 to p do
    s1 := '0' + s1;
  p := k - length(s2);
  for i := 1 to p do
    s2 := '0' + s2; 
  res := '';
  z := ord('0');
  p := 0;
  for i := k downto 1 do
  begin
    j := ord(s1[i]) + ord(s2[i]) - 2 * z + p;
    res := chr(j mod 10 + z) + res;
    p := j div 10;
  end;
  if p > 0 then
    res := chr(p + z) + res;
  add := res;
end;

begin
  readln(n);
  sum := '0';
  for i := 1 to n do
  begin
    readln(a);
    sum := add(sum, a);
  end;
  writeln(sum);
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.04.2014, 23:51   #19
Veronika_13
Пользователь
 
Регистрация: 27.03.2014
Сообщений: 52
По умолчанию

а что надо вставить, чтобы при вводе букв выбивалась ошибка ввода?
Veronika_13 вне форума Ответить с цитированием
Старый 07.04.2014, 00:07   #20
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Например:
Код:
function check(const a: string): boolean;
var
  i: integer;
begin
  for i := 1 to length(a) do
    if not (a[i] in ['0'..'9']) then
    begin
      check := true;
      exit;
    end;
  check := false;
end;
...
    readln(a);
    if check(a) then
    begin
      writeln('INPUT ERROR');
      exit;
    end;
    sum := add(sum, a);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и функции модуля GRAPH Ника-Вероника Паскаль, Turbo Pascal, PascalABC.NET 0 13.03.2012 19:04
процедуры и функции модуля CRT ВалерОК Помощь студентам 3 23.01.2012 19:16
Процедуры и функции модуля CRT 1010011010 Паскаль, Turbo Pascal, PascalABC.NET 0 22.12.2010 03:45
Процедуры и функции модуля CRT малы6ка Помощь студентам 2 17.09.2010 11:36
Помогите решить задачи в паскале! Файлы, функции и процедуры... Регинка-АРМ Помощь студентам 4 22.04.2009 19:32