На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 16
ссылка на сообщение  Отправлено: 09.05.17 18:15. Заголовок: Нестандартный вариант. Задача 25


Если не ошибаюсь, то есть выход за границы массива.
Подставил Ваши входные данные и вылетает на While
const
N = 6;
var
a : array [0..N - 1] of integer;
i, j, count : integer;
begin
for i := 0 to N - 1 do
readln(a);
count := 0;
for i := 0 to N - 1 do begin
j := 1;
while a[j] <> a do
j := j + 1;
if j = i then
count := count + 1
end;
writeln(count);
end.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 6 [только новые]





Сообщение: 7
ссылка на сообщение  Отправлено: 09.05.17 20:13. Заголовок: nikson, добрый вечер..


nikson, добрый вечер!

Извиняюсь за опечатку! Первоначально на Паскале массив был с индексами от 1 до N. Потом я решил приблизить решение к решениям на других языках, но 1 на 0 в этом месте не поменял.

Выхода за границы в цикле while не будет, т. к. j всегда будет меньше, либо равен i (но в последнем случае будут равны и сами элементы массива).

С уважением,
Дмитрий Богданов

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 17
ссылка на сообщение  Отправлено: 10.05.17 09:54. Заголовок: Вот решение на Бэйси..


Вот решение на Бэйсике
Module module1
Sub main()
Const N = 2017
Dim A(N) As Integer
Dim i, j, count As Integer
For i = 1 To N
A(i) = console.readline
Next
count = 2017
For i = 1 To N - 1
For j = i + 1 To N
If A(i) = A(j) Then count -= 1
Next
Next
console.writeline(count)
console.readkey()
End Sub
End Module

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 18
ссылка на сообщение  Отправлено: 10.05.17 09:55. Заголовок: За использование сор..


За использование сортировки массива не снизят баллы?
Вот код этой задачи
Module Module1
Sub Main()
Const N = 2017
Dim A(N) As Integer
Dim i, j, count As Integer
For i = 1 To N
A(i) = Console.Readline()
Next i
Array.Sort(A)
j = A(1)
count = 1
For i = 2 To N
If A(i) <> j Then count += 1 : j = A(i)
Next i
Console.WriteLine(count)
Console.ReadKey()
End Sub
End Module

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 9
ссылка на сообщение  Отправлено: 10.05.17 10:50. Заголовок: nikson, не снизят, н..


nikson, не снизят, но надо иметь ввиду:
1) сортировка "испортит" массив. В целом плохой стиль изменять сами входные данные, вдруг они еще будут нужны далее в программе?
2) так как сортировка будет переставлять элементы, скорость работы будет ниже, хотя в 25 задании эффективность программы не оценивают.

Могу предложить еще более радикальный метод. Если сразу объявить A множеством (например, в С++:
set<int> A;
), и считывать элементы в него, то потом достаточно вывести длину этого множества:
A.count()
. В PascalABC и питоне множества тоже поддерживаются, но опять же, это будет совсем другая программа.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 18.05.17 16:08. Заголовок: Просто изменить нача..


Просто изменить начальное значение J на 0.
J:=0;

Спасибо: 0 
Цитата Ответить



Сообщение: 33
ссылка на сообщение  Отправлено: 18.05.17 16:15. Заголовок: zinaida_49@mail.ru, ..


zinaida_49@mail.ru, да, спасибо! Это опечатку уже исправили.

Чтобы понять рекурсию, надо понять рекурсию Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 915
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет