Страница 1 из 3

Помогите решить пару задачек на паскале.

Добавлено: 29 мар 2008, 16:52
enron
Вот первая:
Опишите функцию, которая выполняет деление с остатком двух больших натуральных чисел (в записи которых не больше 255 цифр).
Вторая:
Напишите программу, которая выводит на экран все размещения чисел 1,2,...,n, где n - заданное натуральное ненулевое число.
И третья:
Выведите на экран n - ю цифру числа 1234567891011121314151617181920...999 (записаны последовательно в порядке возрастания все натуральные положительные числа меньше 1000), где n - заданное натуральное число.

Иначе я сам не могу их решить :(
Помогите,плиз.

Re: Помогите решить пару задачек на паскале.

Добавлено: 29 мар 2008, 17:42
Vovchik
№1

Код: Выделить всё

uses crt;
var x1,x2:integer;
    y:real;
BEGIN
 clrscr;
 write('Введте число №1:');
 readln(x1);
 write('Введите число №2:');
 readln(x2);
 y:=x1 div x2;
 writeln('Ответ:',y:10:2);
 readln;
END.

Re: Помогите решить пару задачек на паскале.

Добавлено: 29 мар 2008, 17:53
Vovchik
№2

Код: Выделить всё

uses crt;
const k=1000;
var n,i:integer;
    m:array[1..k]of integer;
BEGIN
 clrscr;
 Write('Введите n:');
 readln(n);
 for i:=1 to k do
  m[i]:=i;
 for i:=1 to n do
  write(m[i]:5);
 readln;
END.

Re: Помогите решить пару задачек на паскале.

Добавлено: 29 мар 2008, 17:59
Vovchik
№3

Код: Выделить всё

uses crt;
const k=1000;
var n,i:integer;
    m:array[1..k]of integer;
BEGIN
 clrscr;
 Write(' Введите n:');
 readln(n);
 for i:=1 to k do
  begin
   m[i]:=i;
   write(m[i]:5);
  end;
writeln('Ответ:',m[n]);
 readln;
END.

Re: Помогите решить пару задачек на паскале.

Добавлено: 29 мар 2008, 21:05
Serge_Bliznykov
оп-с... прямо не знаю, стоит об этом говорить или нет... ;-(( Vovchik, Вы уж на меня не обижайтесь, но Вы неверно решили задачи. (правда, я не понял условие задачи №2 - поэтому тут не буду 100% утверждать, что неверно, но №1 и №3
решены неверно!

задача №1 - ну, попробуйте разделить число хотя бы с 20 значащими цифрами... тип Integer (как и LongInt) тут не поможет (там, грубо говоря, менее 11 значащих цифр)
Для решения этой задачи нужно использовать т.н. "длинную" арифметику.

задача №3. вот есть ряд 1234567891011121314151617181920...999
отсчитайте n-ю цифру (пусть n ввели 11 - что получается - надо выдать 0 - 11-я цифра в этой длиной записи равна нулю! а что выдаст ваша программа?!
Я уже не говорю о том, что похоже вы путаете понятия "цифра" и "число"...

сорри, если обидел... "Платон мне друг, но истина дороже" (с) Сократ.

Re: Помогите решить пару задачек на паскале.

Добавлено: 29 мар 2008, 21:43
Vovchik
Serge_Bliznykov, просто я наверно тне так понял задачи !!! поетому не так как надо решыл буду исправлять !!

Re: Помогите решить пару задачек на паскале.

Добавлено: 29 мар 2008, 21:44
Serge_Bliznykov
вот решение задачи №3

Код: Выделить всё

{
Выведите на экран n - ю цифру числа 
1234567891011121314151617181920...999
  (записаны последовательно в порядке возрастания все натуральные
  положительные числа меньше 1000),
  где n - заданное натуральное число.
}
var 
  n,i,m,LenAll : integer;
  s : string;
begin
 Write(' Введите n: ');
 readln(n);

 LenAll := 0;
 i:=0;

 while LenAll<n do begin
   inc(i);
   Str(i:1, s);
   if (LenAll+Length(S))>=n then
   begin
     m := n - LenAll;
     WriteLn(n:1,'-я цифра = ',Copy(S,m,1));
   end;  
   LenAll := LenAll+Length(S);
 end;
 readln;
end.

Re: Помогите решить пару задачек на паскале.

Добавлено: 29 мар 2008, 23:37
enron
Вам спасибо Serge_Bliznykov. А то я смотрю что у меня не идут задачи.

Re: Помогите решить пару задачек на паскале.

Добавлено: 30 мар 2008, 08:42
Serge_Bliznykov
пожалуйста.
а растолкуйте мне, что означает в задаче №2 - "все размещения чисел 1,2,...,n" ?
Это Размещение — Википедия ?
если Вы сами понял условия задачи - то объясните.

по поводу задачи №1
смотри сюда -
Вот тут есть процедура деления длинных чисел через вычитание:
Длинная арифметика
а нашёл это я через поиск - на форуме sources.ru Деление больших чисел., ПОМОГИТЕ НАЙТИ ОШИБКУ

Re: Помогите решить пару задачек на паскале.

Добавлено: 30 мар 2008, 12:50
Pinkfloid88
Serge_Bliznykov, Здравствуйте, помогите пожалуйста решить задачу, а то нек кому больше обратиться. Очень буду благодарен, заранее спасибо. Задача: Работа с одномерными массивами. Построение алгоритмов развлетвляющейся и цеклической структуры. Дан массив С(N) натуральных чисел. Найдите сумму элементов, кратных данному числу k.