Программирование на языке Pascal - ФОРУМ

Объявление

Продолжается конкурс на "Самый прикоьный юзербар" Голосовать и просматривать голоса других вы можете в форуме События, раздел "Голосование"

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Задачи по сортировкам

Сообщений 1 страница 17 из 17

1

Пишите ваши задачи

0

2

Прошу выложить мне 2 первые задачи на сортировки(которые у нас на Dl-ке). Заранее благодарю.

0

3

2 я задача

Код:
{$APPTYPE CONSOLE}  
   var a:array[1..100] of real;  
      i,nul,n:integer;  
     
   begin  
   assign(input,'find.in'); reset(input);  
  assign(output,'find.out'); rewrite(output);  
     readln(n);  
     
        for i:=1 to n do  
           read(a[i]);  
     
     nul:=0;  
     
        for i:=1 to n do  
          if a[i]=0  
            then inc(nul);  
     
     writeln(nul);  
     
        for i:=1 to n do  
           if (a[i]>0) and (a[i]<1)  
              then write(a[i]:3:3,' ');  
     writeln;  
     
        for i:=1 to n do  
            if (a[i]=1) or (a[i]=2) or (a[i]=3) or (a[i]=5) or (a[i]=8) then  
              write(i,' ');  
     
     
     
   close(input); close(output);  
  end.

0

4

1 я задача

Код:
Plain text made by ASterikS  
1:   program eeeeeeeeeee;  
2:     
   {$o-,APPTYPE CONSOLE}  
    var n,k,el,i   :longint;  
        a          :array[1..100] of longint;  
     
   begin  
    assign(input,'find.in');   reset(input);  
    assign(output,'find.out'); rewrite(output);  
       readln(n);  
       k:=0;  
       for i:=1 to n do read(a[i]);  
     
       for i:=1 to n do  
          if a[i]<4 then  
              k:=k+1;  
     
          if k<>0 then writeln('1')  
                  else writeln('0');  
     
        el:=0;  
       for i:=1 to n do  
          if (a[i]>4) and(el=0) then el:=i;  
     
          writeln(el);  
           el:=0;  
       for I:=1 to n do  
        if (a[i]>=-4) and  (a[i]<=4) then  
          el:=el+1;  
            
       writeln(el);  
     close(input); close(output);  
   end.

0

5

Вот задачка.. Только не знаю, в правильный раздел ее выложил....

"Дана последовательность до 30 слов, в каждом из которых от 1 до 5 символов, между словами- пробел или запятая, в конце последовательности - точка. Напечатать все различные слова,указав для каждого из них число его вхождений в последовательность."

P.S. Всей группой в инсте решить не можем.... Заранее спасибо)

0

6

вот решенгие в лоб...

Код:
var s,s1:string;
    i,j,k,z,m,n:integer;
    a:array[1..30] of string;
    b:array[1..30] of integer; 
    ok: boolean;
begin 
 readln(s);
i:=1;           k:=0;
  while i<=length(s) do 
   begin 
     j:=i;
      while ((s[j]<>' ') and (s[j]<>',') and (s[j]<>'.')) and (j<=length(s))
      do inc(j);
     inc(k); 
     s1:=copy(s,i,j-i); 
     ok:=false;
       for z:=1 to k do 
          if a[i]=s1 then ok:=true;
     if ok=false  then
      begin 
       inc(k);
       a[k]:=s1;
      end;
     i:=j+1;
   end;
 for i:=1 to k do 
  writeln(a[i]);

end.

0

7

baitur Спасибо большое за код))) У меня примерно такой же на данный момент  сделан, однако, я подошел к преподователю, и он сказал, что я неправильно решил... В задании написано "Напечатать все различные слова". Тоесть если в строчке есть слова дубликаты, программа должна их не выводить.... Тоесть как-то так:
Строчка: раз,два,три,четыре,раз.
Вывод :
раз
два
три
четыре
А вот как сделать, чтобы прога удаляла дубликаты.... я не понимаю)

0

8

Можно хранить все строки в массиве и при каждом добавлении новой - проверять

0

9

Пардон, моя ошибка была...
вот терь работает

Код:
var s,s1:string;
    i,j,k,z,m,n:integer;
    a:array[1..30] of string;
    b:array[1..30] of integer; 
    ok: boolean;
begin 
 readln(s);
i:=1;           k:=0;
  while i<=length(s) do 
   begin 
     j:=i;
      while ((s[j]<>' ') and (s[j]<>',') and (s[j]<>'.')) and (j<=length(s))
      do inc(j);
     inc(k); 
     s1:=copy(s,i,j-i); 
     ok:=false;
       for z:=1 to k do 
          if a[z]=s1 then ok:=true;
     if ok=false  then
      begin 
       inc(k);
       a[k]:=s1;
      end;
     i:=j+1;
   end;
 for i:=1 to k do 
  writeln(a[i]);

end.

0

10

baitur Спасибо тебе большое!!! выручил, я уж не знал, что делать!

0

11

Всегда пожалуйста)) обращайся ес че

0

12

Так здрасьте эт снова я))) Опять запара с прогой))
Задание такое:
База данных автобазы содержит название марки машины, тип поломки, цену за ремонт. Написать прогу, определяющую самую дорогую и самую дешевую в эксплуатации марку машина, а так же определяющую марки машин, больше всех и меньше всех бывших в ремонте. Базу задать самостоятельно (20 записей).
Тема: Записи.
Базу я задать сумел, а дальше пошли трудности.

0

13

Воощем вот!

Код:
type rec = record 
            name :string;
            tip  :string;
            price:longint;
           end;  
var 
     c:array[1..20] of integer;
     a:array[1..20] of rec;
     i,j,l,m,n,k,min,max:longint;
begin 
 write('Kolichestvo mashin '); 
 readln(n);
  for i:=1 to n do 
   begin 
    writeln('Mashina #',i);
    write('Marka '); readln(a[i].name);
    write('Tip polomki '); readln(a[i].tip);
    write('Cena za pochinku '); readln(a[i].price);
    Writeln('------------------------------');
   end;
   min:=1; max:=1;
   for i:=1 to n do 
    begin 
     if (a[i].price<a[min].price) then min:=i;
     if (a[i].price>a[max].price) then max:=i;
    end;
  writeln('Samaya dorogaya machina  ',a[max].name,' ',a[max].price,'$');
  writeln('Samaya deshevaya machina  ',a[min].name,' ',a[min].price,'$');
  Writeln('------------------------------');
   for i:=1 to n-1 do 
    for j:=i+1 to n  do 
     if a[i].name=a[j].name  then 
      begin 
       inc(c[i]);
       inc(c[j]);
      end;
   min:=1; max:=1;
  for i:=1 to n do 
    begin 
     if (c[i]<c[min]) then min:=i;
     if (c[i]>c[max]) then max:=i;
    end;
 writeln('Samaya vstrechaemaya mashina ',a[max].name);
 writeln('Samaya redkaya mashina ',a[min].name);
end.

0

14

baitur
!!!)) спасибки!! Большущее))) ты супер)))  я твой должник теперь)))

0

15

Всегда пожалуйста  8-)

0

16

всем привет , помогите разобраться с задачей) плз :
путем перестановки квадратной вещественной матрицы добиться того ,чтобы ее максимальный элемент находился  в левом верхнем углу ,следующий по величине  -в позиции (2,2 )след по величине -в поз (3,3)  и т .д.   заполнив таким образом всю главную диагональ .
заранее спасибо)

0

17

всем привет!
Помогите пожалуйста написать программу:
Сформировать одномерный массив A(N,N),состоящий из элементов двухмерного массива,используя метод адресной сортировки

Отредактировано dark064 (28-12-2008 17:19:42)

0



Рейтинг форумов | Создать форум бесплатно