Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2014, 16:15   #1
Dekker11
Пользователь
 
Регистрация: 19.10.2014
Сообщений: 11
По умолчанию Студент в смятении

Такая вот задачка...
Дан файл f, компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Файл f содержит столько же отрицательных чисел, сколько положительных. Переписать компоненты файла f в файл g так, чтобы в файле g не было двух соседних чисел с одинаковым знаком.
Dekker11 вне форума Ответить с цитированием
Старый 10.12.2014, 16:18   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Студент в смятении
мы тут тоже немного ох.. удивились
1)язык программирования?
2) попытки или сколько платите?
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 10.12.2014, 16:25   #3
Dekker11
Пользователь
 
Регистрация: 19.10.2014
Сообщений: 11
По умолчанию

Вообще нужно на VBA для экселя, но Паскаль и С++ тоже сойдут, попытки исчерпали себя на стадии разбора. Не думаю, что для знающих людей эта программа заставит напрячься. Оплата по требованию
Dekker11 вне форума Ответить с цитированием
Старый 10.12.2014, 16:28   #4
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

создаете два вектора - положительный и отрицательный.
читаете число.
сравниваете с нулем.
Если меньше - добавляете в отрицательный, иначе - в положительный вектор.

попеременно пишите в выходной файл из каждого вектора.
Smogg вне форума Ответить с цитированием
Старый 10.12.2014, 16:30   #5
Dekker11
Пользователь
 
Регистрация: 19.10.2014
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Smogg Посмотреть сообщение
создаете два вектора - положительный и отрицательный.
читаете число.
сравниваете с нулем.
Если меньше - добавляете в отрицательный, иначе - в положительный вектор.

попеременно пишите в выходной файл из каждого вектора.
Я вам безмерно благодарен, однако проблема в том, что программирую я как моя бабушка. Мне бы подробнее, а еще лучше полностью...
Dekker11 вне форума Ответить с цитированием
Старый 10.12.2014, 16:30   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
создаете два вектора - положительный и отрицательный.
А зачем 2? одного хватит за глаза
Код:
{Паскаль с 1 вектором}
const n=6;
var a,b:array[1..100] of real;
    i,j,k:integer;
function sign(a:real):real;
  begin
    if a>0 then sign:=1
      else if a=0 then sign:=0
      else sign:=-1;
  end;
begin
  a[1]:=-2;  a[2]:=-4; a[3]:=3;
  a[4]:=2;  a[5]:=4; a[6]:=-3;
  writeln('====================================');
  for i:=1 to n do
    write (a[i]:6:2);
  writeln;
  j:=3;
  k:=2;
  b[1]:=a[1];
  for i:=2 to n do
    if sign(a[i])=sign(a[1]) then
      begin
        b[j]:=a[i];
        j:=j+2
      end
    else
      begin
        b[k]:=a[i];
        k:=k+2;
      end
 writeln('====================================');
 for i:=1 to n do
  write (b[i]:6:2);
 writeln;
end.
Цитата:
-2.00 -4.00 3.00 2.00 4.00 -3.00
=================================== =
-2.00 3.00 -4.00 2.00 -3.00 4.00
Ввод/вывод из файла/в файл сами прикрутите
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 10.12.2014 в 16:47.
Mad_Cat вне форума Ответить с цитированием
Старый 10.12.2014, 17:15   #7
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
А зачем 2? одного хватит за глаза
А затем, что размер файла неизвестен

К тому ж, вы и сами два массива использовали...
Smogg вне форума Ответить с цитированием
Старый 10.12.2014, 17:26   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
К тому ж, вы и сами два массива использовали...
*фп* массив то один исходный - заменяется чтением из файла и остается один тот который заполняется поочередно!!!
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 10.12.2014, 17:59   #9
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

ну да, в задании ж одинаковое число положительных и отрицательных. Так что все равно, с какого начинать.

Последний раз редактировалось Smogg; 10.12.2014 в 18:11.
Smogg вне форума Ответить с цитированием
Старый 10.12.2014, 19:49   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

ТС, ответьте, как один из повылазивших на форуме "я не программирую, но дали задачу на асме", "я программирую как бабушка, но вот задачка на файлы", ... зачем это вам? зачем учится на неинтересной специальности? зачем надрывать пятую точку?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вероятность того, что студент забросит мяч в корзину, равна 0,4. Студент произвел 24 броска. Найти наивероятнейшее число попаданий now2 Помощь студентам 1 25.03.2014 17:48
Студент [Delphi] russianemperor Помощь студентам 6 31.08.2013 10:06
вот я студент ANsy Свободное общение 13 01.02.2013 19:38
студент не справляется:) aj.matter Помощь студентам 1 05.11.2012 09:36
класс Студент Alexander1205 Общие вопросы C/C++ 3 07.07.2011 23:06