Форум программистов, компьютерный форум CyberForum.ru

Работа с файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск повторяющихся (строковых) элементов в массиве http://www.cyberforum.ru/cpp-beginners/thread109517.html
Друзья помогите пожалуйста встала такая задача. Есть 3 файла со строчками нужно найти и вывести строчки которые повторяються и вывести сколько раз. Сделал 2 файла. Считал с них инфу в массив, а вот дальще застрял. Помогите плиззз... Заранее огромное спс... int main() { Line* values = NULL; unsigned int lines = 1; unsigned int lines1 = 1;
C++ Передача значения и передача переменной объясните мне разницу...и с кодами пожалуйста...думаю передача значений это через ссылки\указатели,а передача переменных-переменных Добавлено через 2 минуты у кого есть С++ за 21 день откройте пожалуйста страницу 272 и объясните , прошу а то не доходит http://www.cyberforum.ru/cpp-beginners/thread109506.html
C++ двусвязный линейный список
Здравствуйте мне надо реализовать добавление, удаление, редактирование, и поиск!! первые два я уже сделал, а вот с поиском и редактирование не получается помогите пожалуйста))!! Здесь дана структура поездов, тоист станция, номер его, и время отправления))!!! вот сама прога: #include<iostream> #include<cstdlib> #include<cstring>
Работа над множествами C++
Суть состоит в том, чтобы считать 2 множества и сделать соотв. операцию Считывание вроде написал, алгоритм операций знаю, но вот как их реализовать...... *задумался* вот пока что у меня есть (поправьте, если что не так) #include<stdlib.h> #include<conio.h> #include<stdio.h> #include<locale.h> void zapoln(int *n, int m) {
C++ Заменить все положительные элементы массива, кратные пяти, на максимальный элемент http://www.cyberforum.ru/cpp-beginners/thread109438.html
Требования к выполнение контрольной работы: 1. Каждый пункт меню и вывод текста меню выполняется в подпрограмме. 2. Если в начале работы сразу выбирается пункт ниже первого (массив не задан), получить массив генерацией его элементов в интервале от –100 до 100 3. После выполнения каждого пункта меню (кроме последнего), программа снова возвращается в меню. 4. Вычисление суммы, количества,...
C++ Как быть дальше? День добрый. Собственно сложилась такая ситуация - Имеется огромное желание изучать дальше языки программирование, и все то, что с ними связано. Возможно около месяца назад, стал изучать С++. Изучил на начальном уровне - функции/циклы/массивы. Так же затрагивал темы классов, но понял, мне это еще рано. Собственно к чему я все это пишу. Какие темы мне стоит затронуть далее, возможно примеры... подробнее

Показать сообщение отдельно
MustangGT
1 / 1 / 0
Регистрация: 08.11.2009
Сообщений: 56
31.03.2010, 22:02  [ТС]
Цитата Сообщение от rangerx Посмотреть сообщение
Какой смысл от функции сортировки, которая будет сортировать один единственный массив tel? А если захочется объявить ещё один массив tel2? Ты будешь писать вторую функцию сортировки специально для массива tel2? Затем вдруг появится необходимость в массиве tel3... В общем мысль надеюсь ясна
в общих чертах....))))

Добавлено через 22 минуты
и чтоб сразу не отходя от кассы....
я сама скромность)))))


найти в отсортированном массиве структур заданный элемент методами пол-ного перебора и двоичного поиска

Линейный поиск (метод полного перебора)
Метод применяется для неупорядоченных массивов и представляет собой последовательный перебор элементов до обнаружения требуемого ключа или до конца массива, если ключ не обнаружен.
C++
1
2
3
4
5
6
int P_Lin1(int a[ ], int n, int x)
{
for(int i = 0; i < n; i++)
if (a[i] == x) return i;
return -1;
}
Эффективность такого алгоритма пропорциональна количеству элементов.
Единственная возможность улучшить вышеприведенный алгоритм – уменьшить количество проверок на каждом шаге. Для этого вводится вспомо-гательный элемент – барьер, который предохраняет от перехода за пределы массива:
C++
1
2
3
4
5
6
7
8
9
int P_lin2(int a[], int n, int x)
{
a[n+1] = x;
int i = 0;
while (a[i] != x)
i++;
if (i == n+1) return -1;
else return i;
}
Эффективность этого алгоритма в два раза выше предыдущего.
Двоичный (бинарный) поиск
Применяется только для упорядоченных массивов.
Суть метода. Выбирается средний элемент и сравнивается с искомым. Ес-ли искомый элемент меньше среднего, то из рассмотрения исключается правая половина массива, иначе – левая. Процесс повторяется, до тех пор, пока не ос-танется один элемент. Если оставшийся элемент не является искомым, то дела-ется вывод об отсутствии элемента в массиве.
C++
1
2
3
4
5
6
7
8
9
10
11
12
int P_Dv (int a[], int n, int x)
{
int i = 0, j = n-1, m;
while (i<j)
{
m = (i+j)/2; // Вычисление индекса среднего элемента
if (x > a[m]) i = m+1; // Исключение левой половины массива
else j = m; // Исключение правой половины массива
}
if (a[i] == x) return i; // Искомый элемент найден
else return -1; // Искомый элемент не найден
}
ну в общем суть то понятна....но я уверен на 100% опять геморрой будит...так просто это кусок кода в программу не впишешь...(конечно заменив переменные на свои...)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru