IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Различные числа и случайный порядок
сообщение
Сообщение #1


Гость






1.
Условие:
Дано натуральное число N (0<N<1000000). Сколько различных цифр встречается в его записи?
Входные данные:
Число N вводиться с клавиатуры
122334
Выходные данные:
На экран выдаётся одно число, которое указывает количество различных цифр в числе 4

2.
Условие:
С клавиатуры вводиться число N (0<N<1000). Расположить числа от 0 до N-1 в случайном порядке. (В результате работы алгоритма любая перестановка чисел может встречаться одинаково часто)
Входные данные:
Число N, введённое с клавиатуры. 10
Выходные данные:
Файл Output.txt с набором чисел от 0 до N-1, записанными через пробел
0 5 2 9 3 7 1 8 4 6
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 209

Репутация: -  0  +


Вот первая:
Код

Program Bandy_Round;

Var
  i,j : Integer;                       { Счетчики в циклах                       }
  k   : Integer;                       { Указатель на последний элемент          }
  n   : Integer;                       { Вводимое число                          }
  m   : Integer;                       { Цифра числа N                           }
  r   : Real;                          { Количество различных букв               }
  a   : Array [1..7] of Word;          { Массив цифр числа N                     }

Begin
  Write('Input N (1< N <1000000): ');  { Ввод числа N                            }
  Readln(n);                           { --------------------------------------- }
  i:=1;                                { i указывает на начало массива a         }
  While n <> 0 do                      { Заполнение массива a цифрами числа  N   }
  begin
     m:=n mod 10;                      { Остаток от деления                      }
     n:=n div 10;                      { Сокращаем число на 10                   }
     a[i]:=m;                          { Присваеваем очередному элементу массива }
     Inc(i);                           { Увеличиваем i                           }
  end;
  k:=i-1;                              { В k указатель на последний элемент      }
  for i:=1 to k do
  begin
     n:=0;
     for j:=1 to k do
        if a[i]=a[j] then Inc(n);      { В n количество встреч цифры в массиве   }
     r:=r+1/n;                         { В r эта цифра без других её вхождений   }
  end;
  Write('Output: ',r:0:0);             { Вывод суммарного количества разных цифр }
  ReadKey;                             { Ждем нажатия любой клавиши              }
End.                                    { Завершаем программу                     }



--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 209

Репутация: -  0  +


Вот вторая:
Код

(******************************)
(*        Перестановки        *)
(* Алгоритм случайной выборки *)
(******************************)

Var
  i    : Integer;                      { Счетчик в цикле                          }
  N    : Integer;                      { Само число                               }
  Temp : Integer;                      { Вспомогательная переменная               }
  k,j  : Integer;                      { Случайные числа                          }
  A    : Array [0..999] of Integer;    { Массив чисел от 0 до N-1                 }
  F    : Text;                         { Файловая переменная                      }

Begin
  Assign(F,'OUTPUT.TXT');              { Связываем файл. переменную с файлом      }
  Rewrite(F);                          { Открываем для записи                     }
  Write('Input N (1<N<1000): ');       { Ввод числа N                             }
  Readln(N);                           { ---------------------------------------- }
  for i:=0 to N-1 do A[i]:=i;          { Заполняем массив A числами от 0 до N-1   }
  for i:=0 to N-1 do                   { Цикл  случайных перестановок             }
  begin                                { Можно увеличить число итераций           }
     k:=Random(N-1);                   { В k случайное число от 0 до N-1          }
     j:=Random(N-1);                   { В j случайное число от 0 до N-1          }
     Temp:=A[k];                       { Обмен значений двух переменных           }
     A[k]:=A[j];                       { ---------------------------------------- }
     A[j]:=Temp;                       { ---------------------------------------- }
  end;
  for i:=0 to N-1 do Write(F,A[i],' ');{ Вывод уже переставленного массива в файл }
  Close(F);                            { Закрываем файл                           }
End.


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Спасибо за помощь, а как можно этот текст скопировать в паскаль?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 209

Репутация: -  0  +


Цитата
Спасибо за помощь, а как можно этот текст скопировать в паскаль?

Можно просто открыть TP в оконном режиме, далее скопировать вышеуказанную программу в буфер (как это сделать ты наверное догадываешся), и в том окне (где TP) есть иконка типа символа буфера, так вот тебе её нужно нажать, и тогда текст скопируется в TP, но так вроде коряво выходит, есть еще куча способов, самый простой это скопировать в блокнот и сохранить как файл с расширением .pas, но так он у тебя сохраниться в win кодировке и поэтому некорректно будут отображаться русские символы в TP, есть другой вариант скопировать программу в WordPad дальше в меню Сохранить как необходимо выбрать пункт "как текстовой документ ms-dos" и затем переименовать из .txt -> .pas.


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





Группа: Пользователи
Сообщений: 3

Репутация: -  0  +


Вхожу в программу, ввожу число, нажимаю - Enter, а программа выходит в меню и не выдают результата! ???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Перед END напиши READLN.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 209

Репутация: -  0  +


Цитата
Перед END напиши READLN.

Или после завершения жми Alt+F5 и усе увидишь.....


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Забыл сказать: в TP 7 приходилось писать readln дважды!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Бывалый
***

Группа: Пользователи
Сообщений: 209

Репутация: -  0  +


Цитата
Забыл сказать: в TP 7 приходилось писать readln дважды!

Почему ???? У меня TP 7 и одного раза хватает...


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


ТО Ivs
В ТР все переменные одного типа можно резервировать через запятую типа:
i,j,k,n,m  : Integer;
;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


По-моему он это и так знает, а сделано было это для наглядности  :P
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Коллеги, а не подскажете алгоритм случайной выборки из массива?

Есть база, в ней 200 записей.
надо из нее выбрать 40 случайных неповторяющихся.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 42

Репутация: -  0  +


Процедура, случайным образом перемешивающая элементы массива (легко переделывается под Ваш вариант)

Код
var { Глобальные переменные - Фамилия, имя, класс }
 Name    : string;
 SurName : string;
 Class   : string;
Const
 Dimension = 47;
 NumberOfTest = 15;
Type
 DataRecord=Record
   Nomer,Kolvo:Integer;
   Answer:String;
   Category,Number:Integer;
   Stroki:Array [1..9] of String[70];
 end;
 ErrorsArray = Array [1.. Dimension] of Integer;
Var
 MyOIVT :   DataRecord;
 VArray,MyArray,MyErrors : ErrorsArray;
...
Procedure RandomArray (Var A : ErrorsArray;n1,n2:Integer);
Label
 Metka1,Metka2,Metka3;
var
 i,j,t : Integer;

begin
Randomize;
{For i:=1 to n do
 A[i]:=0;}
A[n1]:=Random((n2-n1+1))+n1;
For j:=n1 to n2-1 do
 begin
  Metka2:
   t:=Random((n2-n1+1))+n1;
   i:=n1;
  Metka3:
   if i>j then goto Metka1;
   if t=a[i] then goto Metka2;
   i:=i+1;
   goto Metka3;
   Metka1:
   a[j+1]:=t;
 end;
end;


Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


ПРоцедуры это конечто хорошо, но надо иногда и думать своей головой:
for i:=1 to 40 do a[i]:=b[random(200)];
Вот тебе формирование масива состоящего из 40 елементов, при помощи случайного выбора элементов из другого масива состоящего из 200 элементов... ;D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Про формирование нового массива ничего не говорилось.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


;)А тебе нужно чтобы большими буквами было написанно слово ФОРМИРОВАНИЕ???
Случайный выбор 40 елементов чего ты сними делать то хочешь запаминать сам??
Делаешь массив а потом крути как хочешь, хошь печатай, хошь запаминай... все проше  чем его процедура :P
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18





Группа: Пользователи
Сообщений: 3

Репутация: -  0  +


Условие:
Из цифр двух натуральных чисел составить наибольшее возможное число, сохраняя первоначальную последовательность цифр.

Пример:
111
222
Ответ:
222111
97531
86420
Ответ:
9876543210

2, 3 задачи решение должно быть не файлом input.txt, а вводом с клавиатуры!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19





Группа: Пользователи
Сообщений: 3

Репутация: -  0  +


Никто не знает чтоли? ???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 5:58
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name