![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
maks |
![]()
Сообщение
#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 |
![]() ![]() |
Ivs |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Вот первая:
Код 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
|
Ivs |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Вот вторая:
Код (******************************) (* Перестановки *) (* Алгоритм случайной выборки *) (******************************) 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
|
maks |
![]()
Сообщение
#4
|
Гость ![]() |
Спасибо за помощь, а как можно этот текст скопировать в паскаль?
|
Ivs |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Цитата Спасибо за помощь, а как можно этот текст скопировать в паскаль? Можно просто открыть TP в оконном режиме, далее скопировать вышеуказанную программу в буфер (как это сделать ты наверное догадываешся), и в том окне (где TP) есть иконка типа символа буфера, так вот тебе её нужно нажать, и тогда текст скопируется в TP, но так вроде коряво выходит, есть еще куча способов, самый простой это скопировать в блокнот и сохранить как файл с расширением .pas, но так он у тебя сохраниться в win кодировке и поэтому некорректно будут отображаться русские символы в TP, есть другой вариант скопировать программу в WordPad дальше в меню Сохранить как необходимо выбрать пункт "как текстовой документ ms-dos" и затем переименовать из .txt -> .pas. -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
Maks |
![]()
Сообщение
#6
|
![]() Группа: Пользователи Сообщений: 3 Репутация: ![]() ![]() ![]() |
Вхожу в программу, ввожу число, нажимаю - Enter, а программа выходит в меню и не выдают результата! ???
|
AlaRic |
![]()
Сообщение
#7
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
Перед END напиши READLN.
|
Ivs |
![]()
Сообщение
#8
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Цитата Перед END напиши READLN. Или после завершения жми Alt+F5 и усе увидишь..... -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
AlaRic |
![]()
Сообщение
#9
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
Забыл сказать: в TP 7 приходилось писать readln дважды!
|
Ivs |
![]()
Сообщение
#10
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Цитата Забыл сказать: в TP 7 приходилось писать readln дважды! Почему ???? У меня TP 7 и одного раза хватает... -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
reill |
![]()
Сообщение
#11
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
ТО Ivs
В ТР все переменные одного типа можно резервировать через запятую типа: i,j,k,n,m : Integer; ;) |
GLuk |
![]()
Сообщение
#12
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
По-моему он это и так знает, а сделано было это для наглядности :P
|
Сергей |
![]()
Сообщение
#13
|
Гость ![]() |
Коллеги, а не подскажете алгоритм случайной выборки из массива?
Есть база, в ней 200 записей. надо из нее выбрать 40 случайных неповторяющихся. |
ozzy |
![]()
Сообщение
#14
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 42 Репутация: ![]() ![]() ![]() |
Процедура, случайным образом перемешивающая элементы массива (легко переделывается под Ваш вариант)
Код 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 - 17.12.2004 11:48 |
reill |
![]()
Сообщение
#15
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
ПРоцедуры это конечто хорошо, но надо иногда и думать своей головой:
for i:=1 to 40 do a[i]:=b[random(200)]; Вот тебе формирование масива состоящего из 40 елементов, при помощи случайного выбора элементов из другого масива состоящего из 200 элементов... ;D |
AlaRic |
![]()
Сообщение
#16
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
Про формирование нового массива ничего не говорилось.
|
reill |
![]()
Сообщение
#17
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 52 Репутация: ![]() ![]() ![]() |
;)А тебе нужно чтобы большими буквами было написанно слово ФОРМИРОВАНИЕ???
Случайный выбор 40 елементов чего ты сними делать то хочешь запаминать сам?? Делаешь массив а потом крути как хочешь, хошь печатай, хошь запаминай... все проше чем его процедура :P |
Maks |
![]()
Сообщение
#18
|
![]() Группа: Пользователи Сообщений: 3 Репутация: ![]() ![]() ![]() |
Условие:
Из цифр двух натуральных чисел составить наибольшее возможное число, сохраняя первоначальную последовательность цифр. Пример: 111 222 Ответ: 222111 97531 86420 Ответ: 9876543210 2, 3 задачи решение должно быть не файлом input.txt, а вводом с клавиатуры! |
Maks |
![]()
Сообщение
#19
|
![]() Группа: Пользователи Сообщений: 3 Репутация: ![]() ![]() ![]() |
Никто не знает чтоли? ???
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:31 |