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

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

  1. Kiryapes

    Kiryapes Гость

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

    etc Гость

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

    BurcevD Гость

    Вы тогда хоть рейтинг чтоли поднимайте 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.
     
  4. Kiryapes

    Kiryapes Гость

    Спасибо!!!!
     
Загрузка...

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