![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Tatjanka |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Репутация: ![]() ![]() ![]() |
Помогите пожалуйста решить задачи.
Вот одна из них: Дан числовой массив А(35). Найдите, в массиве есть пара одинаковых чисел. Сколько одинаковых чисел, если они есть? |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Tatjanka
А в массиве только одно число встречается не один раз? Что будет, если таких чисел несколько? Например: 1, 1, 1, 4, 4, 5, 5, 5, 3, 4, 9, 8, 7, 6, 5, 4, 3, 2, 1 ... |
Tatjanka |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Репутация: ![]() ![]() ![]() |
Ой, я задание неправильгно с эстонского перевела.
В задаче спрашивается есть ли в массиве пара одинаковых знаков и сколько таких пар? |
Tatjanka |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo
помоги пожалуйста с решением. если конечно тебе не трудно. А за прошлие задачки огромное спасибо. У меня их приняли. |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Что-то ты меня совсем запутала.
Цитата есть ли в массиве пара одинаковых знаков Приведи пример массива (не нужно 35, пусть будет 5 элементов, где такая пара есть, и где ее нет...) ![]() |
Tatjanka |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo
Например 1 2 4 5 1 здесь одна пара - 1,1 2 2 2 2 3 две пары 2,2 и 2,2 но нужно писать только количество пар |
mithquessir |
![]()
Сообщение
#7
|
Гость ![]() |
Ну, наверное так:
Код var num,i,j:integer; a:array[1..35] of integer; begin randomize; for i := 1 to 35 do a[i] := random(100); for i := 1 to 35 do for j := i + 1 to 35 do if a[i] = a[j] then Inc(num); for i := 1 to 35 do begin Write(a[i]:3); end; WriteLn; WriteLn(num); end. Сообщение отредактировано: volvo - 1.12.2004 15:58 |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
mithquessir
Давайте не пользоваться красным цветом? Плюс к этому, проверяйте программу перед тем, как запостить сюда. Программа с тестовым примером: Код const n = 12; const a: array[1 .. n] of integer = (1, 2, 2, 3, 3, 6, 5, 8, 2, 3, 2, 3); var num,i,j:integer; begin for i := 1 to n do for j := i + 1 to n do if a[i] = a[j] then Inc(num); for i := 1 to n do begin Write(a[i]:3); end; WriteLn; WriteLn(num); end. выдает в результате 12, хотя здесь всего 4 пары... Будьте внимательнее... Сообщение отредактировано: volvo - 1.12.2004 16:09 |
Tatjanka |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo
Значит етот код неправильно написан? |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Tatjanka
Вот, что мне пришло в голову: Код const n = 12; const a: array[1 .. n] of integer = (1, 2, 2, 3, 3, 6, 5, 8, 2, 3, 2, 3); var i, j, T: integer; pairTo, count: integer; begin for i := 1 to n do for j := n downto i+1 do if a[j-1] > a[j] then begin t := a[j-1]; a[j-1] := a[j]; a[j] := t; end; i := 1; while i <= n-1 do begin pairto := a[i]; if a[i+1] = pairto then begin inc(count); inc(i, 2) end else inc(i) end; writeln(count); end. |
Tatjanka |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo
Я пишу этот код, а у меня выдает 1, а это неправильный ответ ![]() Вот я наверное подкинула тебе задачку, но я не специально, честно. :flowers: |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Tatjanka
Не может быть. Я только что еще раз прогнал тест. В ответе 4, как и есть на самом деле. Проверь еще раз, что все точно записала. |
Tatjanka |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Репутация: ![]() ![]() ![]() |
volvo
Спасибо огромноебвсе замечательно работает. А можно еще одно задание послать. Или я уже наглею? |
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Tatjanka
Только в новую тему, если оно не связано с массивами ;) |
mithquessir |
![]()
Сообщение
#15
|
Гость ![]() |
Извиняюсь за неправильный код.
![]() А можно как-нибудь без сортировки? |
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
mithquessir
Может и можно... Надо будет подумать... |
ShadowWatcher |
![]()
Сообщение
#17
|
Новичок ![]() Группа: Пользователи Сообщений: 29 Пол: Мужской Репутация: ![]() ![]() ![]() |
Некрасивое решение, но должнл пахать:
Код Type TNum=Record Number:Integer; Count:Integer End; Var Data:Array[1..35] Of TNum; i,j,n:Integer; Begin Randomize(); For i:=1 To 35 Do Begin Data[i].Number := Random(10); Data[i].Count := 1; End; For i:=1 To 34 Do Begin If Data[i].Count = 0 Then Continue; For j:=i+1 To 35 Do If (Data[i].Number=Data[j].Number) Then Begin Inc(Data[i].Count); Data[j].Count := 0 End End; n:=0; For i:=1 To 35 Do If Data[i].Count > 0 Then Inc(n); WriteLn('Totally ',n,' non-single numbers') End. |
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
ShadowWatcher
Неправильный результат (проверял при значениях 1 .. 12, т.е. повторов нет совершенно) - выдает "12". |
ShadowWatcher |
![]()
Сообщение
#19
|
Новичок ![]() Группа: Пользователи Сообщений: 29 Пол: Мужской Репутация: ![]() ![]() ![]() |
Согласен.
Код Type TNum=Record Number:Integer; Count:Integer End; Var Data:Array[1..35] Of TNum; i,j,n:Integer; Begin Randomize(); For i:=1 To 35 Do Begin Data[i].Number := Random(10); Data[i].Count := 1; End; For i:=1 To 34 Do Begin If Data[i].Count = 0 Then Continue; For j:=i+1 To 35 Do If (Data[i].Number=Data[j].Number) Then Begin Inc(Data[i].Count); Data[j].Count := 0 End End; n:=0; For i:=1 To 35 Do If Data[i].Count > 1 Then Inc(n); WriteLn('Totally ',n,' non-single numbers') End. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 3:07 |