Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
19 Янв 2018, 00:22
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Задача не могу перевести из паскаля в 1с  (Прочитано 2744 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн aydar

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-23
  • Сайт: 
  • Профессия: Программист 8.1
вообщем дали мне задачу сделать
В массиве Z(m) найти число чередований знака, то есть число переходов с минуса на плюс или с плюса на минус. Например, в последовательности 0, -2, 0, -1, 0, 2, -1, 0, 0, 3, 2, -3 четыре чередования (как известно, нуль не имеет знака).

я сделал заполнение массива, но никак не могу переделать код из паскаля в 1с

Цитировать
{ищем первый не ноль}
if a[1]<>0 then
 begin
  if a[1]>0 then x:=1 else x:=-1;{его знак}
  j:=1;
 end
else
 begin
  i:=1;
  while a=0 do
  inc(i);
  if a>0 then x:=1 else x:=-1;
  j:=i;
 end;
{ищем смены знака}
k:=0;
i:=j+1;
while i<=n do
if (a=0)or(x*a>0) then inc(i){если ноль или одного знака, вперед}
else{иначе}
 begin
  k:=k+1;{считаем смену}
  x:=-x;{меняем знак проверки}
 end;
write('Число смен знака=',k);
readln
end.

вот что я сделал но думаю не правильно саецы посмотрите плиз
Цитировать
{ищем первый не ноль}
если мас[1]<>0 Тогда
если мас[1]>0 Тогда x=1 иначе
x=-1;{его знак}
j=1;
КонецЕсли; {это конец 2 если}
иначе
 i=1;
Пока мас=0 Цикл
i=i+1;
КонецЦикла;
  если мас>0 Тогда x=1 иначе x=-1;
КонецЕсли;
  j=i;
 КонецЕсли;
{ищем смены знака}
k=0;
i=j+1;
Пока i<=n Цикл
если (мас=0)или(x*мас>0) Тогда i=i+1{если ноль или одного знака, вперед}
иначе
  k=k+1;{считаем смену}
  x=-x;{меняем знак проверки}
 КонецЕсли;
сообщить('Число смен знака=',k);


Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Это что-то навроде домашнего задания? Сравнение языков с академической точки зрения?
Совсем один в один сделать не получилось. Уж больно код на Паскале не понравился. На 1С вышел такой же говнокод
	a = Новый Массив();
a.Добавить(0);
a.Добавить(-2);
a.Добавить(0);
a.Добавить(-1);
a.Добавить(0);
a.Добавить(2);
a.Добавить(-1);
a.Добавить(0);
a.Добавить(0);
a.Добавить(3);
a.Добавить(2);
a.Добавить(-3);

x=0;
k=0;

n = a.ВГраница();


Для i = 0 по  n Цикл
Если a[i] <> 0 Тогда
x = ?(a[i]>0,1,-1);
j = i+1;
прервать;
Иначе
продолжить;
КонецЕсли;
КонецЦикла;


Для i = j по  n Цикл

если (a[i]=0) или (a[i]*x>0) тогда
продолжить;
Иначе
k = k+1;
x = -x;
КонецЕсли;

КонецЦикла;

сообщить("Число смен знака="+k);
Доделай до полной идентичности сам.
Кнопочка Спасибо - слева!

Оффлайн chuevsf

  • Хочу! Хочу! Хочу! Мышь на палочке!
  • Глобальный модератор
  • *****
  • Сообщений: 1377
  • РЕПУТАЦИЯ: 345
  • КПД: 25%
  • Регистрация: 2010-07-08
    • Skype: chuevsf
  • Сайт: 
  • Профессия: Программист 1С
Все хорошо, но только после объявления массива рекомендуется его сначала очистить и только потом заполнять!
А то могут появится интересные, но не очень приятные сюрпризы, особенно когда обработку будешь запускать несколько раз подряд.

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Приму к сведению. Эту восьмерку я наверное никогда не освою.
Кнопочка Спасибо - слева!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
chuevsf, почему нужно очищать массив???
Он же конструктор массива вызывает который создает каждый раз новый (уникальный массив)...????
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!


Теги:
 

не могу вывести отображение цен в "подборе" документ "Заявка покупателя" УТ 10.3

Автор Виталий ЕмельяновРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 4127
Последний ответ 05 Окт 2015, 19:22
от Виталий Емельянов
не могу заполнить поле "Соглашение"

Автор aprnРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3259
Последний ответ 05 Май 2011, 18:17
от Maxim
Не могу найти в 1С8.3 справочник "Организации"

Автор ГюзельРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 14109
Последний ответ 17 Сен 2014, 11:18
от Гюзель
Не могу найти "Удаление помеченных объектов"

Автор LeviathanРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 7
Просмотров: 5678
Последний ответ 14 Янв 2016, 06:03
от cska-fanat-kz
Если у счёта есть признак учёта "Количество", то я могу писать Двж.КоличествоДт?

Автор DirecTwiXРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 5577
Последний ответ 25 Апр 2012, 10:39
от Vit1501

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
93 Сообщений
AIFrame
75 Сообщений
alex0402
32 Сообщений
pavl_vs
23 Сообщений
kiksi
22 Сообщений
andron81_81
18 Сообщений
alexandr_ll
17 Сообщений
Norfolk
15 Сообщений
MuI_I_Ika MuI_I_Ika
13 Сообщений
Artibon
12 Сообщений

* Кто онлайн

  • Точка Гостей: 249
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal