Вот заметил, что уж очень много в ветке по кодингу появляется вопросов, связанных с решением задач. И вот, покопавшись на винте, решил выложить решения, которые у меня уже были, надеюсь, пригодится! Короче решил не мучить себя и вас и выложу все архивом. Бинарников в архиве нет. Но если нужны стучите. _http://www.megaupload.com/ru/?d=HDHO4Q5K Архив на меге Содержание архива: Графика Инвертирование цветов Конвертирование RGB->Grayscale Фильтры: контур, размытие, резкость Графы Определение числа компонент связности Поиск кратчайшего пути методом фронта волны Путь минимального веса в нагруженном графе Существование пути между 2 вершинами Деревья Модуль для работы Массивы Поиск: двоичный, линейный Сортировка: от пузырька до шейкера Матрицы Модуль для работы Строки Алгоритм Бойера Мура Алгоритм замены одной подстроки другой Алгоритм последовательного поиска Алгоритм Кнута Морриса и Пратта Взятие подстроки Структуры данных Дек, Список, Стек
Все это у меня валялось давно. Часть этих исходников старше TP6 Если считаете нужным, у меня есть сайт (wiki), я туда выложу и исправляйте как считаете нужным, возможно, синтаксис и нужно изменить (я не вижу никаких ошибок ). [Оффтоп]А можно в BBCode сделать так, чтобы тег [соdе] в итоге получался покороче, чтобы был маленький блок (по высоте) и его можно было прокручивать, а то топик читать неудобно[/Оффтоп]
так кому там задачки по паскалю нужно зделать пишите !зделю задачу любой сложности с ассм вставками и прочим ГГ!
Я вот тоже за С++ взялся, классный язык, до этого программировал на Паскале (точнее баловался писать сейчас программы на паскале это изврат).
Зачем вам это надо? Всё постоянно выкладывается на DVD журнала Xakep в раздел Шпаргалки. Вы хоть копирайты указывайте, охотники за репкой...
Может кто поможет или подскажет как реализовать на С++? В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального элемента массива; 2) сумму элементов массива, расположенных между первым и вторым отрицательными элементами. Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом — все остальные.
вот первую наструячил Code: #include <stdio.h> #include <conio.h> #define N 6 void main(void) { float arr[N]; int i, min; for (i = 0; i < N; i++) { printf("enter %d element: ", i); scanf("%f", &arr[i]); } min = 0; for (i = 0; i < (N - 1); i++) if(arr[i+1] < arr[i]) min = i+1; printf("min number: %d", min); getch(); return; } ща если не лень будет остальные - помогу.. в общем далее некий псевдокод следует. 2) инициализация(так же) циклом по массиву ищем отрицательные элементы, номера их запоминаем. далее цикл в пределах ранее запомненных номеров, в нем суммируем элементы. 3) тут вопрос, нужно ли сортировать? если нет, то элементарно, если да - почитай про сортировки. а вообще задачи смешные =\ советую разобраться.
Нет сортировать не нужно, если не влом, напиши как с модулем разобраться. А с сортировкой у меня проблем нет. Code: #include <stdio.h> #include <stdlib.h> #include <iostream> #include <iomanip> #include <conio.h> using namespace std; int cmp(const void *a, const void *b) { return *(int*)a - *(int*)b; } int main() { int n, i; int a[6]={2,-1,-7,3,5,6}; for(i = 0 ; i < 6; i++) { } qsort(a, 6, sizeof(int), cmp ); for(i = 0 ; i < 6; i++) { cout << " " << a[i]; } getch(); return 0; } С меня ++.
Code: [ #include <stdio.h> int main() { int sum=0, i=0, j=0; int MyArray[10]={ 12, -3, 23, 12, 6, 2, 34, -12, 3, 9}; int Num[2]={0,0}; for(;i<10;i++) { if(MyArray[i]<0) { Num[j]=i; j++; } } for(j=Num[0]+1;j<Num[1];j++) { sum+=MyArray[j]; printf("%d\n",MyArray[j]); } printf("%d",sum); return 0; } Если правильно понял, то вот второй. Только тут ошибка целые числа... В третьем можно использовать функцию abs()(модуль числа вроде) в <math.h> и отсортировать потом пузырьковым методом.
Code: #include <algorithm> size_t GetIndexOfMinElement(const double* a, size_t n) { const double* min_elem = std::min_element(&a[0], &a[n]); return min_elem - &a[0]; } Code: #include <algorithm> #include <functional> #include <numeric> double GetSummFromFirstToSecondNeg(const double* a, size_t n) { const double* first_neg = std::find_if(&a[0], &a[n], std::bind2nd(std::less<double>(), 0)); if(first_neg != &a[n]){ const double* second_neg = std::find_if(++first_neg, &a[n], std::bind2nd(std::less<double>(), 0.0)); return std::accumulate(first_neg, second_neg, 0.0); } return 0.0; } Code: #include <vector> struct Choser : std::unary_function<double, bool>{ bool operator()(double a){ return a < -1.0 || a > 1.0; } }; void SpecialSort(double* a, size_t n) { std::vector<double> c; std::remove_copy_if(&a[0],&a[n],std::back_inserter(c),Choser()); std::copy(&a[0], &a[n - c.size()], std::back_inserter(c)); std::copy(c.begin(),c.end(),&a[0]); }
#include <stdio.h> #include <math.h> #include <alloc.h> #include <conio.h> int nomer(int N,int mas[]){ //funkciya naxogdeniya nomera minimalnogo int min=mas[0],i; int nomber=0; for(i=0; i<N;i++) if(min>mas){min=mas; nomber=i;}//tuta mi i naxodim minimum return nomber;} int summa(int N,int mas[]){ //funkciya naxogdeniya summa poebeni )) int summa=0,i; for(i=0; i<N;i++){ // tut ona i realizovana if(mas<0){ i++; for(;i<N;i++){ // kak ona rabotaet dage ne sprashivai if(mas<0){break;} //va piwu pod pivom i granic moei fantazii net predelov... summa+=mas; }}} return summa;} void massiv(int N,int mas[]){ //eto funkciya toge 4e to delaet int *mas2; int b=0,i; mas2=(int*)malloc(N*sizeof(int)); for(i=0; i<N;i++) if(abs(mas)<=1){ mas2=mas; b++;} for( i=0;i<N;i++) if(abs(mas)>1){ mas2=mas; b++; } for(i=0;i<N;i++) printf("mas[%d]=%d\t",i,mas2); } void main(){ int N=0; int *mas,i; printf("vvedite kol-vo elementov v massive\n"); scanf("%d",&N); mas=(int*)malloc(N*sizeof(int)); printf("vvedite elementi massiva\n"); for(i=0;i<N;i++) scanf("%d",&mas); printf("Nomer minimalnogj=%d\n",nomer(N,mas)); printf("summa poebeni=%d\n", summa(N,mas)); massiv(N,mas); getch(); }