Помогите по паскалю

Тема в разделе "Delphi - FAQ", создана пользователем Kiryapes, 22 янв 2009.

  1. Kiryapes

    Kiryapes Гость

    Репутация:
    0
    №1:
    Дано натуральное число n, Переставить его цифры так, чтобы образовалось наименьшее число, записанное теми же цифрами.
    №2:
    Заполнить файл f целыми числами, полученными с помощью генератора случайных чисел. Из файла f получить файл g, исключив повторные вхождения чисел. Порядок следования сохранить.
    №3:
    В одномерном массиве, состоящим из n вещественных элементов, вычислить:
    a)Сумму элементов массива, расположенных между первым и последним положительными элементами.
    б) преобразовать массив таким образом. что бы сначала располагались все элементы равные 0, а потом все остальные.
     
  2. etc

    etc Гость

    Репутация:
    0
    Там что, сессии начались? ... чет уж больно много на форуме недоучек всплыло.
     
  3. BurcevD

    BurcevD Гость

    Репутация:
    0
    Вы тогда хоть рейтинг чтоли поднимайте B)
    Задача № 1
    Код (Text):
    //Грубо говоря нужно просто отсортировать цифры в порядке возрастания
    //Описываем переменные
    Var N,Err:Integer;
    S:String;
    i,j:Integer;
    c:char;
    Begin
    //Вводим число
    Write('Inter number:');
    Readln(n);
    //Переводим число в строку, т.е. массив символов
    Str(n,S);
    //Обычный метод "пузырька" =)
    For i:=1 to length(s)-1 do
    Begin
    For j:=i+1 to Length(s) do
    if s[i]>s[j] then
    begin
    c:=s[i];
    s[i]:=s[j];
    s[j]:=c;
    end;
    end;
    //Переводим получившуюся строку в число
    Val(S,N,err);
    //Выводим результат на экран
    Writeln('Result is:',N);
    end.
    Задача № 2

    Код (Text):
    //Описываем переменные
    Var F,F1,G:Text;
    I:Integer;
    Si,s:String;
    Begin
    //Создаем исходный файл, путем заноса туда случайных чисел
    Assign(f,'input.txt');
    Rewrite(f);
    //Я взял 100 чисел от 0 до 9 включительно
    For i:=0 to 100 do
    Writeln(f,Random(10));
    Close(f);

    //Связываем две переменные с одним фалом, для одной будем записывать
    Assign(g,'output.txt');
    Rewrite(g);
    CLose(g);
    //Для другой считывать
    Assign(F1,'output.txt');
    Reset(f);
    //Пока не конец файла Ф
    While not EOF(F) do
    begin
    //Считываем строку (ну или число как кому удобнее)
    Readln(f,Si);
    //Смотрим в файле Ф1, он же Г, только для чтения, есть ли такое число в файле
    Reset(f1);
    Append(g);
    While (not EOF(f1))and(Si<>s) do Readln(f1,s);
    //Если достигнут конец файла, а строки похожей нет, то записываем в новый файл Г считанное число
    If EOF(f1) and (Si<>s) then
    Writeln(g,Si);
    //Закрываем, чтобы вновь считать
    Close(f1);
    CLose(g);
    end;

    Close(f);
    End.
    Задача № 3

    Код (Text):
    //Размерность массива, я указал в 5
    Const n=5;
    //Описываем переменные
    Var a:array[0..n-1] of Real;
    Sum:Real;
    indxFirst, IndxLast:Integer;
    i,j:Integer;
    temp:real;
    Begin
    //Вводим массив ручками
    Writeln('Source array:');
    For i:=0 to n-1 do
    begin
    Write('Element #',i,':');
    readln(a[i]);
    end;
    //Ищем первй положительный элемент
    IndxFirst:=0;
    WHile (IndxFirst<n)and(a[indxFirst]<0) do Inc(IndxFirst);
    //Ищем последний положительный элемент
    IndxLast:=n-1;
    While (IndxLast>=0)and(a[IndxLAst]<0) do Dec(indxLast);
    //Если нет ни одного положительного, то сообщаем, что суммы показать не можем
    if (indxFirst=n)or(IndxLast=-1) then
    Writeln('No summ...') else
    begin
    //В противном случае считаем сумму от первого до последнего положительного элемента
    Sum:=0;
    For i:=IndxFirst to IndxLast do
    Sum:=Sum+a[i];
    Writeln('Sum:',sum:10:2);
    end;
    //Проходим весь массив, начиная со второго элемента
    For i:=1 to n-1 do
    //Если элемент равен 0, то
    if a[i]=0 then
    begin
    //Перегоняем его в начало массива, сохраняя последовательность других элементов
    For j:=i downto 1 do
    begin
    temp:=a[j];
    a[j]:=a[j-1];
    a[j-1]:=temp;
    end;
    end;
    //Выводим получившийся элемент
    Writeln('Destanation array:');
    For i:=0 to n-1 do
    Write(a[i]:5:1);
    Writeln;
    End.
     
Загрузка...

Поделиться этой страницей