Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 72 из 87<  1 ... 69  70  71  72  73  74  75 ... 87  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 15.02.2009
Откуда: Лангепас
progn Кушаем память по-немногу ;-)



Партнер
 

Junior
Статус: Не в сети
Регистрация: 31.05.2009
Откуда: Санкт-Петербург
progn писал(а):
while (n<=0)
B = new int[n];

что это за ерунда?


Это да(
Это там было не правильно. Вот как надо. Динамический массив:
#include<alloc.h>
B=(int*)malloc(2*n);

while (n<=0) - ну там это для того, что если пользователь вводит ноль или меньше нуля, то прога продолжает сканировать с клавиатуры n.
Как туда записать блоки под номерами 13-15? Остальные вроде записаны.
Чуть модернизированная прога
Код:
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
void main(void)
   {
   clrscr();
   int *B;
   int i, j, m=1, k, t, n, v;
   do
   {
   printf("\n vvedite razmernost' massiva B: ");
   scanf("%d", &n);
   }
   while(n<=0)
   B=(int*)malloc(2*n);
   for(i=0; i<n; i++)
      {
      printf("\n vvedite %d element massiva B", i);
      scanf("%d", &B[i]);
      }
   printf("\n vvedite nekotoroe chislo: ");
   scanf("%d", &k);
   do
   {
   i=0;
   j=0;
   for(i=0; i<n; i++)
   {
      if (B[i]>=k)
         {
         for(i=0; i<n; i++)
         {
         if(j==0)
         }
         {
         i++;
         }
         else
         {
         t=B[i];
         B[i]=B[i-1];
         B[i-1]=t;
         }
         }
      else
      {
      j++;
      }
      }
   m++;
   }
   while (m<j);
   v=B[n-j];
   B[n-j]=B[n-j-1];
   B[n-j-1]=v;
   printf("\n preobrazovanniy massiv:");
   for(i=0; i<n; i++)
   {
   printf("%d  ", B[i]);
   }
   getch();
}


В какой среде писать на си?


 

Member
Статус: Не в сети
Регистрация: 15.02.2009
Откуда: Лангепас
!RAPTOR! Блин!!! Читать твоё невозможно - глаза и мозги кипят, используй нормальное форматирование, плизз..
!RAPTOR! писал(а):
Как туда записать блоки под номерами 13-15? Остальные вроде записаны.

Мыслить надо глобальнее - блоки с 10 по 26 анализируй. Если поймёшь - то и 15й с 13м на место красиво встанут...

Честно говоря, в задаче ограничений по скорости (кол-во операций) нет. Отсортировал бы весь массив в убывающем порядке, затем нашёл границу раздела по "некоторому числу", и на этом же массиве отсортировал обе "разделённые границей" массивы в возрастающем порядке.

З.Ы. Поставленная задача преподом некорректна: как быть с массивом: 1 2 3 4 5 6 7 и "некотором числе k=4" ? куда впихнуть 4? что делать, если в массиве есть несколько чисел равных "некоторому числу" ?


 

Junior
Статус: Не в сети
Регистрация: 31.05.2009
Откуда: Санкт-Петербург
oxy Извините. Что невозжно читать? Прогу или фоку? Если прогу, то препод говорит, что надо так "причёсывать" программу.

А как отсортировать массив по убыванию, найти границу, и отсортировать как надо в задании сохраняя их взаимное расположение? И используя при этом 1 массив.

Так что мне надо куда-то приписать? Или может через while? (Для прописания в прогу блоки от 13 до 15)
Код:
for(i=0;i<n;i++)
if(j=0)


 

Member
Статус: Не в сети
Регистрация: 15.02.2009
Откуда: Лангепас
!RAPTOR! писал(а):
oxy Извините. Что невозжно читать? Прогу или фоку? Если прогу, то препод говорит, что надо так "причёсывать" программу.
А как отсортировать массив по убыванию, найти границу, и отсортировать как надо в задании сохраняя их взаимное расположение?

ОМГ :mad2:
1. Сортировать "пузырьком" - наиболее легко и для лаб практично.
2. Найти границу - "линейным просмотром".
3. Причёсывать:
Код:
int k=2;
for(int i=0; i<10; i++)
    {
        if(i&1 != 0)
            {i++;
             i*=2;}
        else
           k++;
    }
/*ну как-то так*/


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Подскажите чем подсчитать количество арифметических операций в коде? Вручную не вариант.
Пробовал AQTime с профилем Static Analyze, так он там в полях Float Instructions и Instruction Count, по моему, сильно прибавляет. Если это вообще то, о чем я подумал.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 15.08.2007
Для чего это надо и что под этим понимается? Сколько сложений, умножение и т.п. ? Библиотечные функции как считать? Циклы, вызовы функций учитывать? Тут много нюансов.

Если это какая-нибудь лаба, диплом и требуется оценить эффективность алгоритма или его реализации, то вернее всего полу-ручным методом (автоматизация тут только - в текстовом редакторе regexp'ом поискать), но вообще это по блок-схеме / псевдокоду делается.


 

Мемbеr
Статус: Не в сети
Регистрация: 04.10.2010
Откуда: г.Ялта
Фото: 17
Извиняюсь может не там спрашиваю.
Но я только начал читать книжку по С++(а конкретно Прата С. с примерами).
#77
Так вот собственно вопрос это с кодировкой винды связано что не выводит Русские слова нормально или дальше в книге будет расписано об этом.
Или в самой Dev C++ есть настройки вроде пересмотрел не заметил ни чего.

_________________
https://hwbot.org/user/alexmaj467
https://oconestory.wordpress.com


 

Member
Статус: Не в сети
Регистрация: 17.11.2008
Идея в следующем:

Необходимо в опции компилятора добавить строчку -fexec-charset=cp866.

В итоге должно получиться что-то типа:

Код:
C:\MinGW\bin\g++ -o test.exe -fexec-charset=cp866 test.cpp


Смысл опции, что она преобразует строки в кодировку cp866 - русская кодировка DOS и консоли Windows.

Но, похоже в Dev C++это не пройдет, поскольку исходные файлы он сохраняет не в формате UTF-8, а в каком-то экзотическом ISO-8859-1.

Вижу один выход, сменить среду разработки. Рекомендую Geany. Хотя придется повозиться с ее установкой и настройкой под Windows.


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Доброго времени суток
Подскажите пожалуйста структуру данных для хранения текстов больших объемов, операции, которые будут производиться - извлечение некоторых букв из некоторых слов, заранее нельзя сказать из каких

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Member
Статус: Не в сети
Регистрация: 15.02.2009
Откуда: Лангепас
manya
Код:
char * text;

void main(void)
{
 text=(char*)malloc(bolshaya_dlina);
...
/*работаем с текстом*/
...
 free(text);
}


Если текст в блоке памяти не умещается (размер, который может выделить malloc зависит от ОС), то придется использовать символьный файл...


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
oxy писал(а):
manya
Код:
char * text;

void main(void)
{
 text=(char*)malloc(bolshaya_dlina);
...
/*работаем с текстом*/
...
 free(text);
}


Если текст в блоке памяти не умещается (размер, который может выделить malloc зависит от ОС), то придется использовать символьный файл...

bolshaya_dlina ведь также неизвестна, а создавать массив больше чем надо не хочется. Можно было бы создать связный список, или дерево, но хранение его в оперативной памяти тоже не радует. Эх...

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Member
Статус: Не в сети
Регистрация: 07.01.2010
а как он будет заполняться и как к нему потом будут обращаться? это ведь самое важное.


 

Member
Статус: Не в сети
Регистрация: 15.02.2009
Откуда: Лангепас
manya под какую ось пишешь? Под NT-семейство есть такая весчь, как файл, отображаемый в память (не помню как именно называется). Также можно попробовать динамический массив - класс , регулирующий размер массива, в зависимости от потребностей, при этом изменение размера массива происходит определёнными квантами (например по 1Кб).


 

Junior
Статус: Не в сети
Регистрация: 10.01.2009
vector


 

Member
Статус: Не в сети
Регистрация: 07.01.2010
что ж вы ему всё предлагаете одной портянкой хранить? что с ней потом делать? а в векторе будет куча переаллокаций при постепенном заполнении


 

Member
Статус: Не в сети
Регистрация: 15.02.2009
Откуда: Лангепас
manyaНапиши в чём пишешь? А то толпа непоняток.
З.Ы. только не говори, что это чистый С...


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
oxy
не, не чистый си, с++

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Member
Статус: Не в сети
Регистрация: 15.02.2009
Откуда: Лангепас
ToSHiCКакая альтерантива? Учитывая, что размер неизвестен, то только динамические структуры - списки, динам. массивы, тот же vector и пр.
manya - Общий смысл задачки какой? Может всё-таки удасться массивом обойтись?
manya писал(а):
звлечение некоторых букв из некоторых слов
- извлечение - это поиск и удаление, или только поиск?
Текст состоит из бессмысленного набора слов или это реальная "Руслан и Людмила" Пушкина?
З.Ы. к-либо массив лучше, т.к. можно использовать строковые операции. IMXO
З.З.Ы Если есть только неупорядоченный набор слов - то лучше бинарное дерево (поиск слова быстрее)...


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
oxy
0. Альтернатива - пока список
1. Смысл - поиск некоторого заданного подмножества слов
2. Извлечение - поиск, сравнения, вычисление некоторых функций по совпадающим группам символов в словах
Не, не "Руслан и Людмила":)

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 72 из 87<  1 ... 69  70  71  72  73  74  75 ... 87  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan