манипуляции со строками Добрый день! Необходимо решить 4 задачки по программированию на языке Си. скрин задач прилагаю, готов платить за решение. В личку свой номер ICQ и отзывы(если есть на форуме тут)
Задание: Используя класс Bill, реализовать класс ListPayer. Класс Bill должен включать поля: фамилия плательщи-ка, номер телефона, тариф за минуту разговора, время разговора в минутах. Класс ListPayer содержит список плательщиков за телефонные услуги, дату создания списка, количество плательщиков, номер списка. Реализовать методы добавления плательщиков в список, замены и удаления их из него. Поиск осуществляется по номеру те-лефона и по фамилии, по времени (больше или меньше заданной величины). Требования к программе: Классы-контейнеры требуется реализовать на основе двусвязного списка (см. листинг). В отдельном поле count должно храниться текущее количество элементов списка; реализовать метод count(), возвращающий это количество. Перегрузить операцию индексирования [] по номеру элемента. Индекс проверяется на корректность и в случае ошиб-ки генерируется исключение (использовать стандартное исключение). Новый элемент разрешается вставлять первым, последним и по номеру. Удаление элемента выполняется в на-чале, в конце и по номеру. Использовать для представления дат простую версию класса Date. В классе должно быть объявлено три поля для года месяца и дня. Класс должен обеспечивать конструкторы инициализации, методы изменения и получения по-лей даты. Реализовать операции сравнения дат, и операции ввода-вывода дат. Все операции реализовать как дружест-венные функции. Структура элемента контейнера должна быть объявлена как отдельный класс с конструкторами. Интерфейс и реализация всех классов должны быть разделены. Для демонстрации работы с объектами нового типа во всех заданиях требуется написать главную функцию. В программе обязательно должны быть продемонстрированы различные способы создания объектов и массивов объек-тов. Программа должна демонстрировать использование всех функций и методов. Листинг. Паттерн последовательного контейнера – списка class List { public: // Конструкторы/копирование/присваивание List(); ~List(); // Итераторы // Размеры bool empty () const; size length () const; // Доступ к элементам value_type& front(); value_type& back(); value_type& operator[](size_t index); // Модификаторы контейнера void push_front (const value_type&); // добавить в начало void pop_front (); // удалить первый void push_back (const value_type&); // добавить в конец void pop_back (); // удалить последний void insert (size_t index, const value_type&); // вставить в указанной позиции void erase (size_t index); // удалить указанный (в позиции) private: struct Node { Node(const value_type& a); Node(){} value_type item; // информационная часть элемента Node *next; // следующий элемент Node *prev; // предыдущий элемент }; long count; // количество элементов Node *Head; // "голова" списка Node *Tail; // "хвост" списка }; Постановка задачи 1. Реализовать программу обработки списка. 1. Объявить структуру с конструкторами; 2. Создать и заполнить список с элементами-структурами неупорядоченными случайными значениями. Вариант вставки выбирается случайным образом. Удалить повторяющиеся элементы. 3. Реализовать алгоритмы 2.2, 4.3 поиска минимума и максимума в неупорядоченном списке. 4. Реализовать алгоритмы поиска заданного элемента в неупорядоченном списке – паттерн цикла «полный перебор с фильтрацией»: 4.1. Алгоритм 2.1 – простой последовательный поиск; 4.2. Алгоритм 4.1 – последовательный поиск с барьером; 4.3. Алгоритм 4.2 – «развёрнутый» последовательный поиск с барьером 5. Реализовать алгоритм 4.10 поиска в самоорганизующемся контейнере. Алгоритмы поиска должны возвращать индекс найденного элемента. Если элемент не най-ден, должно возвращаться значение -1. Для обработки элементов контейнера реализовать класс-функтор, перегрузив подходящим образом операцию operator(). Выполнить измерения времени работы реализованных алгоритмов. Сравнить скорость рабо-ты реализованных алгоритмов со стандартными алгоритмами поиска. При необходимости реали-зовать и использовать при вызове стандартного алгоритма функтор-предикат. Алгоритм 2.2. Поиск максимального среди n чисел // Входные данные: последовательность чисел а1,а2,...,аn // Выходные данные: максимальное число из элементов ai maxv = a1; i = 2; while (i != n) { if (ai > maxv) maxv = ai ; i = i + 1; } return maxv; Алгоритм 4.3. Поиск максимального и минимального среди n чисел // Входные данные: массив A из n элементов последовательности а1,а2,...,аN // Выходные данные: максимальное и минимальное число из элементов ai maxv = A[1]; minv = A[1]; i = 2; if (N % 2 = 0) n = N-1; // до нечетного while (i < n) { if (A>A[i+1]) { if (A > maxv) maxv = A; if (A[i+1] < minv) minv = A[i+1]; } else { if (A[i+1] > maxv) maxv = A[i+1]; if (A < minv) minv = A; } i = i + 2; } if (N > n) // если N - четное { if (A[N] > maxv) maxv = A[N]; if (A[N] < minv) minv = A[N]; } return maxv, minv; Алгоритм 2.1. Поиск числа K среди N чисел // Входные данные: последовательность чисел а1,а2,...,аN; число K // Выходные данные: номер первого найденного элемента i = 1; while (i != n) { if (K = ai) return i; else i = i + 1; } return 0; Алгоритм 4.1. Быстрый последовательный поиск в массиве // Входные данные: массив А из n элементов а0,а2,...,аN; ключ поиска K // Выходные данные: номер первого найденного элемента A[N] = K; i = 0; while (A!= K) { i = i + 1; } return i; Алгоритм 4.2. Супербыстрый последовательный поиск в массиве // Входные данные: массив А n элементов а1,а2,...,аN+1; ключ поиска K // Выходные данные: номер первого найденного элемента A[N+1] = K; i = -1; while(true) { i = i + 2; if(A = K) return i; if(A[i+1] = K) return i+1; } Алгоритм 4.10. Поиск в самоорганизующемся массиве // Входные данные: массив А из n элементов а0,а2,...,аN; ключ поиска K // Выходные данные: номер первого найденного элемента A[N] = K; // установка барьера i = 0; while (A!= K) { i = i + 1; } if ((1 < i)&(i < N)) // успешный поиск { t = A[i}; A=a[i-1]; A[i-1] = t; return i-1; } else return i; Методические указания 1. Вариант реализуется в виде отдельного консольного приложения. Транслировать в режиме Release с полностью отключённой оптимизацией. 2. Все необходимые величины задаются в виде констант: размер контейнера, количество повто-рений цикла, точность вычисления и т.д. 3. Приостановки программы для просмотра результатов выполняются с помощью вызова функ-ции system(“pause”); 4. Все сообщения на консоль выводить на русском языке. 5. Программа должна иметь вид // подключаемые файлы-заголовки // определения констант // определения функций, функторов // определения контейнеров int main() { // измеряемый цикл system(“pause”); //. . . . . . . . . . . . . . . . . . . . // измеряемый цикл system(“pause”); return 0; } Очень нужно, спасибо.
С++ нужна поммощь в написании программ Прошу помощи в написании программ 1.В данном массиве найти самую длинную группу из записанных подряд элементоводного знака. 2.Дана матрица A(N,M), которая вводится из файла. В каждом столбце найти сумму положительных элементов. Определить, в каком из столбцов получается наибольшая из этих сумм. Вывести все элементы этого столбца. Каждый этап решать при помощи подпрограммы, работающей с вектором. Вектор "вырезать" из матрицы. 3.Дано предложение, в котором слова разделены запятой или пробелом, а общая длина меньше либо равна 80. Найти и напечатать все слова, которые представляют собой слово-палиндром*. 4.Вычислитьь интегралл от 1 до 0, xtgxdx по формуле трапеций. *-слово одинаково читающееся в обоих направлениях (топот, 404
Составить программу, находящую в матрице D(n,n) номера строк, в которых каждый элемент больше максимального из того же столбца, расположенных до рассматриваемого. вывести исходную матрицу, номера найденных строк. Если требуемых строк нет, то выдать соответствующее сообщение.
насколько я понял, первая строка не выведется никогда? PHP: #include <iostream> using namespace std; int main(int argc, char **argv){ int N; cin>>N; cout<<endl; int **matrix=new int*[N]; for(int i=0;i<N;++i)matrix[i]=new int[N]; for(int i=0;i<N;++i){ for(int j=0;j<N;++j) cin>>matrix[i][j]; cout<<endl; } int *max=new int[N]; for(int i=0;i<N;++i) max[i]=matrix[0][i]; int count=0; for(int i=1;i<N;++i){ bool f=true; for(int j=0;j<N;++j){ if(matrix[i][j]<=max[j]) f=false; else max[j]=matrix[i][j]; } if(f){ cout<<i+1<<endl; ++count; } } if(!count)cout<<"Строк, удовлетворяющих условию нет"<<endl; delete[] max; for(int i=0;i<N;++i)delete[] matrix[i]; delete[] matrix; return 0; }
программа на tasm в режиме masm записать слова введенного предложения в обратном порядке. Произвести очистку экрана. Вывести результат в позиции экрана.
Доброго времени суток,ачатовцы. Препод, дал здание перевести последние цифры студенческого в двоичную систему и по полученному числу сделать задание. Номера студенческого 11 и 5. 500WMR
проблема с программой( не могу понять в чем проблема должно выводить двухзначное число с пробелом. //--------------------------------------------------------------------------- #include <iostream.h> #include <condefs.h> #include <conio.h> #include <stdlib.h> #include <vcl.h> #include <sstream> #include <string> #pragma hdrstop #include <tchar.h> //--------------------------------------------------------------------------- #pragma argsused int _tmain(void) { cout << "Number:" << endl; int a; cin >> a; String b; b = IntToStr(a); if(a < 99 && a > 10){ cout << b[0] << " " << b[1]; } getch(); return 0; }
Code: #include <string> #include <iostream> #include <sstream> using namespace std; template <typename T> string toString(T val) { ostringstream oss; oss << val; return oss.str(); } int main(void) { cout << "Number:" << endl; int a; cin >> a; string b; b = toString(a); if(a < 99 && a > 10)cout << b[0] << " " << b[1]; return 0; } а вот так правильнее Code: #include <iostream> using namespace std; int main(void) { cout << "Number:" << endl; int a; cin >> a; if(a < 99 && a > 10)cout << a/10 << " " << a%10; return 0; }
Привет ачатовцы. Помогите разобраться с задачкой на дин. массивы. "Составить функцию для определения среднего арифметического значения тех элементов одномерного массива длиной N, модуль значения которых меньше заданной величины. Используя эту функцию, вывести те элементы заданного массива, значение которых больше найденного по процедуре среднего арифметического. При расчете среднего арифметического в процедуре учитывать только те элементы массива, модуль которых меньше 5."
Очень нужно сделать следующие 1. В соответствии с вариантом спроектируйте базу данных любым методом проектирования на основе описания предметной области. 2. В СУБД InterBase 6.0/Firebird 1.5 реализуйте серверную часть спроектированной ранее базы данных, которая должна содержать: таблицы с определением первичного ключа триггеры, реализующие каскадное обновление и каскадное удаление связанных полей триггеры, присваивающие уникальное значение генератора в поле первичного ключа триггеры, обеспечивающие журнализацию изменений определенной таблицы не менее трех различных хранимых процедур 3. В ИСР Delphi создайте клиентское приложение, используя любую технологию доступа к данным (BDE, IBX, ADO и др.) с возможностью поиска и фильтрации данных, а также вывода отчета. 1. Номер зачетки студента уникален, то есть не может быть двух студентов, у которых одинаковые номера зачеток 2. Несколько студентов, могут иметь одинаковые имена. 3. Каждый студент учится только в одной группе 4. В одной группе учатся несколько студентов. 5. Название группы уникально. 6. Каждая группа относится к одной кафедре. 7. К одной кафедре относится несколько групп. 8. Название кафедры уникально. 9. Студент имеет ФИО, год рождения, адрес. Кафедра название и зав. кафедрой. Пожалуйста помогите, без вас я не справлюсь
пацантрэ, помогите. задали тут в VBA сделать. В ячейках С1-С3 хранятся произвольные числа. Вывести в ячейку D1 количество положительных элементов, в ячейку D2 - сумму положительных элементов, в ячейку D3 - произведение положительных элементов. помогите с кодом, кому не сложно. вот что написал я, но это не катит.. Private Sub proizvchisla_Click() Dim A As Integer, B As Integer, C As Integer Dim D As Integer, E As String, N As String Dim x As Integer, y As Integer, z As Integer Dim k As String, l As String, m As String A = Range("C1") B = Range("C2") C = Range("C3") If A<0 then x=0 else if A>=0 then x=1 else If B<0 then y=0 else if B>=0 then y=1 else If C<0 then z=0 else if C>=0 then z=1 end if end if end if end if end if end if D=x+y+z if A>=0 then A=k else if B>=0 then B=l else if C>=0 then c=m end if end if end if E=k+l+m F=k*l*m Range("D1") = D Range("D2") = E Range("D3") = N End Sub
лабораторная на си Написать функцию , вычисляющую с заданной точноcтью eps, значение y = x^(1/k) по итерационной формуле y[0] = 1; y[n-1]=y[n]+( x/(y[n]^(k-1)) - y[n] )/k ( n = 0,1,2,...)
Привет ребята Помогите на С++ плиз! в Вижуал студии ..желательно! Дана целочисленная прямоугольная матрица A, размером nxm. Проверить, все ли строки матрицы содержат хотя бы один нулевой элемент. Если нет, то заменить значения всех отрицательных элементов матрицы на нулевые.
Подпрограмма №1 - формировка элементов первого списка тип float количество 8, включение элементов после второго. Подпрограмма №2 - формировка однонаправленного списка с положительных элементов первого списка, включение в начало списка. Не могу до конца разобраться с этим заданием и со списками вообще. Помогите пожалуйста довести код до нормального вида 1.h Code: struct Item { int info; Item *next; }; inline bool Check (Item * el) { if (el ->info > 0) return true; else return false; } Code: #include <stdio.h> #include <iostream> #include <windows.h> #include <cstring> #include "1.h" using namespace std; void main () { Item *first = 0; Item *p; for (int i = 0; i <=8;i++) { int a; cin >> a; p = new Item; p->info = a; if (first == NULL) { p->next = NULL ; first = p; } else if (first ->next == NULL) { p->next = first->next; first->next = p; } else { Item *current = first ->next; p -> next = current -> next; current -> next = p; cout << p->info<<" "; } //cout << endl; } Item *new_item = new Item; for (int i = 0; i <=8; i++); { new_item -> info = p -> info; new_item -> next = first; first = new_item; p = p->next; } system("pause"); }