Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задачи на массивы(С++)

16K
20 апреля 2006 года
VPA
4 / / 20.04.2006
2. В одномерном массиве, состоящем из n целых элементов, вычислить:
1. Минимальный по модулю элемент массива.
2. Сумму модулей элементов массива, расположенных после первого элемента, равного нулю.
Преобразовать массив таким образом, чтобы в первой его половине расположились элементы, стоящие в чётных позициях, а во второй половине – элементы стоявшие в нечётных позициях.

3. Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицей размером 10 на 10.
Найти сумму модулей элементов, расположенных выше главной диагонали.

4. Написать программу, которая считывает английский текст из файла и выводит на экран слова с текстом, начинающимся на гласные буквы.
  • в одномерном целочисленном массиве размерности n найти сумму чётных элементов. от Максим Лисовский, 11 февраля 2014 года
Страницы:
75K
30 сентября 2011 года
GiloSpring
3 / / 11.09.2011
Цитата: cronya
Тогда мне не совсем понятно задание, нарисуйте хотя бы как должно быть то


Мне бы самому его понять ! :(

75K
05 октября 2011 года
Iskander28
5 / / 23.09.2011
Уменя тут еще такая задача. Помогите пожалуйста.
Двумерный целочисленный массив A(m;n) генерируется в ппределах от -100 до 100. Получить новую матрицу в которой все отрицательные элменты заменены на "-1". положительные-"+1", нулевые-без изменений.
14K
05 октября 2011 года
Fenja
138 / / 20.03.2009
Iskander28, и в чем трудность? Поставить 2 проверки условия?
75K
06 октября 2011 года
Iskander28
5 / / 23.09.2011
проблема в том что вообще незнаю язык C++
392
09 октября 2011 года
cronya
421 / / 03.01.2009
не знаю не вопрос :)
75K
15 октября 2011 года
Iskander28
5 / / 23.09.2011
а файл ctime.h можешь скинуть? или что писать в нем скажи плиз. у меня такого заголовочного файла нет
70K
18 октября 2011 года
Eclat
3 / / 29.03.2011
Здравствуйте! Помогите, пожалуйста, решить очень интересную задачу! С классами =) Срочно надо!
Создайте класс «Целочисленная матрица» для работы с матрицами произвольного размера. В классе должны быть реализованы следующие операции:
• сложения, вычитания, умножения матрицы на матрицу и умножения матрицы на число. Для обозначения операций используйте знаки «+»,«-», «*» (реализовать с помощью перегрузки операций);
• заполнения матрицы случайными числами из заданного диапазона;
• вывода матрицы на печать;
• доступа к отдельным элементам (для присваивания и считывания значения);
• сравнения на равенство (операция ==).
При создании матрица заполняется нулями или инициализируется значениями другой матрицы.
Продемонстрировать в программе работу с этим классом.

Хотя бы некоторые пункты помогите выполнить. Особенно хотелось бы узнать, что об этом думает енот_в_засаде =)))
392
20 октября 2011 года
cronya
421 / / 03.01.2009
Цитата: Iskander28
а файл ctime.h можешь скинуть? или что писать в нем скажи плиз. у меня такого заголовочного файла нет


1) Читаем книжки, становимся умными.
2) [CODE=С++]
#include<ctime>// может так
[/CODE]

76K
23 октября 2011 года
Tanushka241
1 / / 23.10.2011
надо до завтра написать 2 проги:
1. Задана квадратная матрица. Исключить из нее строку и столбец, на пересечении которых расположен максимальный элемент глав¬ной диагонали.

2.Дана целочисленная квадратная матрица порядка n. Получить b1,...,bn, где bi - это сумма элементов, предшествующих последнему отрицательному элементу i-й строки (если все элементы строки не¬отрицательны, то принять bi= -1).
77K
29 октября 2011 года
Demangel
1 / / 29.10.2011
Здравствуйте, помогите пожалуйста.

3. Ввести структуру ДАТА с полями ЧИСЛО, МЕСЯЦ, ГОД. Составить и протестировать функцию
a) ввода и вывода на экран даты;
b) вычисляющую дату, на N дней вперед по заданной;
c) находящую в массиве введенных дат все даты заданного года.
77K
01 ноября 2011 года
Andrei7
2 / / 01.11.2011
Дан массив X. Переписать пять первых положительных элементов массива подряд в массив Y. Найти максимальный элемент массива X.
Помогите решить. Буду благодарен.
277
01 ноября 2011 года
arrjj
1.7K / / 26.01.2011
Цитата: Andrei7
Дан массив X. Переписать пять первых положительных элементов массива подряд в массив Y. Найти максимальный элемент массива X.
Помогите решить. Буду благодарен.



Код:
Dim X(1 to 10) As Integer
Dim Y(1 to 5) As Integer
Dim N,F,M As Integer
F=1
For N=1 To 10
If X(N)>0 Then
Y(F)=X(N)
If F=1 Then
M=1
Else
If Y(M)<Y(F) Then
M=F
End If
End If
F=F+1
End If
If F>=5 Then Exit For
Next N

:trollface:
77K
02 ноября 2011 года
Andrei7
2 / / 01.11.2011
спасибо, но мне бы на СИ++
535
02 ноября 2011 года
Нездешний
537 / / 17.01.2008
Код:
#include <iostream>
#include <conio.h>
#include <vector>
#include <algorithm>

bool IsMayCopy(int value)
{
    return (value <= 0);
}

int _tmain(int argc, _TCHAR* argv[])
{
    const size_t MAX_POSITIVE_VALUES = 5;
   
    const int values[] = {-1, 5, 0, 78, -5, 3, -9, 16, 27, -3, 5};
    std::vector<int> v(values, values + sizeof(values) / sizeof(int));
    std::vector<int> vFivePositiveValues;

    std::remove_copy_if(v.begin(), v.end(), std::back_inserter(vFivePositiveValues), IsMayCopy);
    if (vFivePositiveValues.size() > MAX_POSITIVE_VALUES)   vFivePositiveValues.resize(MAX_POSITIVE_VALUES);

    int maximum = *std::max_element(v.begin(), v.end());

    std::cout << "Five first positive values:" << std::endl;
    for (size_t i = 0; i < vFivePositiveValues.size(); ++i)
    {
        std::cout << vFivePositiveValues << " ";
    }

    std::cout << std::endl << "Max value: " << maximum << std::endl;

    std::cout << "Press any key to quit...";
    _getch();
    return 0;
}
341
02 ноября 2011 года
Der Meister
874 / / 21.12.2007
А "подряд" к какой части предложения относится: про "первые пять" или про "переписать"? Что-то мне кажется, что всё-таки имеется в виду "первые пять положительных элементов, идущих в массиве один за другим без перерыва на какавушку".
P.S. Какая-же, кстати, мудацкая цветовая схема у подсветки cpp: нихера не видно и глаза режет.
87
02 ноября 2011 года
Kogrom
2.7K / / 02.02.2008
Нездешний, некросплатформенный у тебя пример (g++ ругается) и неэффективный. Мало того, что память занимается лишняя, так ещё и удаляем все отрицательные, вместо того, чтобы скопировать только 5 чисел и остановиться. Вектора тут ни к чему, ибо известно, какой размер будет у массива y.
535
02 ноября 2011 года
Нездешний
537 / / 17.01.2008
2 Kogrom
Да ладно тебе! Не мешай чуток потроллить ;)

Если человек не в состоянии перекопировать с неким условием данные из одного массива в другой - ясное дело, что этот пример ему не поможет :)
И понятно, что с точки зрения чисто вычислений алгоритм неоптимален. Зато он неплох в балансе вычисления/время разработки ;)

Что там с gcc, кстати? У меня только студии под рукой сейчас
277
02 ноября 2011 года
arrjj
1.7K / / 26.01.2011
Цитата: Нездешний

Что там с gcc, кстати? У меня только студии под рукой сейчас



_tmain, _TCHAR, _getch

87
02 ноября 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: Нездешний
2 Kogrom
Да ладно тебе! Не мешай чуток потроллить ;)



Я не против. Присоединился же.

Цитата: Нездешний
Зато он неплох в балансе вычисления/время разработки ;)



Тогда уж так:

 
Код:
x = [-1, 5, 0, 78, -5, 3, -9, 16, 27, -3, 5]
y = [a for a in x if a > 0][:5] # for little list

print y
print max(x)


но это без учёта замечания от Der Meister

Цитата: Нездешний
Что там с gcc, кстати? У меня только студии под рукой сейчас



error: conio.h: Нет такого файла или каталога
error: ‘_TCHAR’ has not been declared
error: ‘_getch’ was not declared in this scope

535
03 ноября 2011 года
Нездешний
537 / / 17.01.2008
:)
 
Код:
arr = [-1, 5, 0, 78, -5, 3, -9, 16, 27, -3, 5]
arr.select{|v|  v > 0}.slice(0..5)
arr.max


Ну а если учесть замечание Der Meister'a и заодно попробовать некоторые плюшки С++ 11:
Код:
#include <iostream>
#include <conio.h>
#include <algorithm>
#include <iterator>
#include <vector>

int _tmain()
{
    const int MIN_SEQUENCE_LEN = 5;
   
    const int values[] = {0, 1, 2, -3, 3, 4, 5, 6, 7, -4, -12, 89};

    //show
    std::cout << "array: ";
    for (auto it = std::begin(values); it != std::end(values); ++it)
    {
        std::cout << *it << " ";
    }
   
    //find maximum
    auto max = *std::max_element(std::begin(values), std::end(values));
    std::cout << std::endl << "maximum: " << max << std::endl;

    //find positive sequence
    std::vector<decltype(max)> fivePositives;
    for (auto it = std::begin(values); it != std::end(values); ++it)
    {
        if (*it <= 0) continue;
        auto firstNonPositive = std::find_if(it, std::end(values), [] (int i) {return i <= 0;});
        auto dist = std::distance(it, firstNonPositive);
        if (dist >= MIN_SEQUENCE_LEN)
        {
            std::copy(it, it + MIN_SEQUENCE_LEN, std::back_inserter(fivePositives));
            break;
        }
        else
        {
            it += dist;
        }
    }

    //show positive sequence
    std::cout << "positive sequence (min lenght " << MIN_SEQUENCE_LEN << "): ";
    for (auto it = std::begin(fivePositives); it != std::end(fivePositives); ++it)
    {
        std::cout << *it << " ";
    }
   
    std::cout << std::endl << "Press any key to quit...";
    _getch();
    return 0;
}
C++11
Из опробованного работает в MSVC 2010:
- auto
- decltype
- лямбды
- make_shared
не работает:
- for (auto i : some_collection) //range-based for
- списки инициализации для вектора
87
03 ноября 2011 года
Kogrom
2.7K / / 02.02.2008
Цитата: Нездешний
 
Код:
...
    const int values[] = {0, 1, 2, -3, 3, 4, 5, 6, 7, -4, -12, 89};
...
    auto max = *std::max_element(std::begin(values), std::end(values));
...



Да, end для массива - полезный "синтаксический сахар". Зачем нужен begin - пока не понял. Можно же написать просто values. Возможно, читаемость повышает.

77K
06 ноября 2011 года
JaneTalks
2 / / 06.11.2011
помогите плиз с заданием!!
Определить в одномерном числовом массиве А,состоящим из n элементов,число соседств из двух положительных чисел.
надо сделать примитивно всё и в Microsoft Visual Studio 2005.молююююю!!!!!!
77K
11 ноября 2011 года
staket
2 / / 11.11.2011
Помогите пожалуйста Решение надо уже завтра - вот рою никак не могу родить хоть что нить!
Задача
Дана матрица размером N*M, назовем особым элемент текущей строки, если он больше суммы элементов ему предшествующих в строке.
Определить строку с наибольшим кол-вом особых элементов.
Необходимо уже 12.11.11 с 7 утра по москве - чтоб смог разобраться.
Хотя если кто нить сможет сделать после этого предела, буду очень благодарен за помошь- хоть буду знать! Спасибо!
271
12 ноября 2011 года
MrXaK
721 / / 31.12.2002
если тупо в лоб без всяких оптимизаций:
Код:
#define N 3
#define M 5

int arr[N][M];
int qu[N];  // количество особых в i-й строке
                           
void reset() {
  int i, j;
  for (i = 0; i < N; i++) {
    for (j = 0; j < M; j++) {
      arr[j] = 0;
    }
    qu = 0;
  }
}

int stringSum(int n, int limit) {
  int i, sum = 0;
  for (i = 0; i < limit; i++) {
    sum += arr[n];
  }
  return sum;
}

void specQuantity(void) {
  for (i = 0; i < N; i++) {
    for (j = 0; j < M; j++) {
      if ( arr[j] > stringSum(i, j) ) {
        qu++;
      }
    }
  }
}

/**
@usage:
* reset();
* ..array work..
* specQuantity();
*/

только это не плюсы
77K
14 ноября 2011 года
staket
2 / / 11.11.2011
Дано задание
:mad:
Построить список , исключить первые и n элементы , расположенные после
1. первого отрицательного
2. после наибольшего
3. несколько функций от себя

Добавлено через 2 минуты
Написал код, но не знаю правильно ли? ну там еще пару действий добавил на всякий случай, чтоб ничего еще не сказали на лету сделать!


#include<iostream.h>
#include<conio.h>

struct node {
int info;
node *next, *prev;
};

void add_L(node*&first, node*&last, int x) {
node*p = new node;
p->info = x;
p->prev = 0;
p->next = first;
if(first == 0) last = 0;
else first->prev = p;
first = p;
}

void add_R(node*&first, node*&last, int x) {
node*p = new node;
p->info = x;
p->next = 0;
p->prev = last;
if(last) last->next = p;
else first = p;
last = p;
}

void make(node*&first, node*&last) {
first = 0;
last = 0;
int x;
do {
cout<<"\n VVesti nomer: \n";
cin>>x;
add_R(first, last, x);
cout<<"\n Continue ? Y/N \n";
//cout<<"\nFirst: "<<first<<"\nLast: "<<last;
} while(getch()!='n');
}

void output(node*first, char t[]) {
if(first == 0) cout<<"\n List empty \n";
else {
node*p = first;
cout<<t;
while(p) {
cout<<p->info<<" ";
p = p->next;
}
cout<<endl;
}
}

void insert(node*&last, node*p, int x) {
node*t = new node;
t->info = x;
t->next = p->next;
t->prev = p;
if(p == last) last = t;
else p->next->prev = t;
p->next = t;
}

void remove(node*&first, node*&last, int &x, node*p) {
if(p == first) first = p->next;
else p->prev->next = p->next;
if(p == last) last = p->prev;
else p->next->prev = p->prev;
x = p->info;
delete p;
}
void sort(node*first, node*last) {
node*p = first, *t, *pmin;
while(p != last) {
pmin = p;
t = p->next;
while(t) {
if(t->info < pmin->info) pmin = t;
t = t->next;
}
int z = p->info;
p->info = pmin->info;
pmin->info = z;
p = p->next;
}
}

void main() {
clrscr();
int x, z, sum = 0;
node*first, *last, *p, *a;
make(first, last);
output(first, "\n Spisok: \n");
//Delete 1 pozitive
p = first;
while (p!=0&&p->info<0){
p=p->next;
}
if(p==0) cout<<"\n Net polzitelnih \n";
else{ remove (first, last, x, p);
sum = sum + x;
output(first,"\n Spisok posle udaleniya 1 polozitelnogo \n");
}
//Add novogo elementa posle min
p = first;
a = first;
z = p->info;
while(p!=0) {
p = p->next;
if(z>p->info) {
z = p->info;
a = p;
}
}
cout<<"\n Novii Element ";
cin>>x;
insert(last, a, x);
output(first,"\n Spisok posle dobavlenya\n");

//Udalenie vseh polozitelnih
p = first;
while(p!=0) {
if(p->info>0) {
remove(first, last, x, p);
sum = sum + x;
p = p->prev;
}
p = p->next;
}
output(first,"\n Spisok posle udaleniya vseh polozitel'nih\n");

sort(first,last);
output(first,"\n Spisok posle sortirovki\n");

getch();
}
Пожалуйста проверьте кто понимает - чувствую что я не удовлетворил условию задачи ! покажите , где это может быть и как исправить!
74K
15 ноября 2011 года
YuninDen
5 / / 15.11.2011
[SIZE="4"]Упорядочен ли массив (из файла) в с++?[/SIZE]

Добрый вечер, ломаю голову над вопросом и взываю к вашей помощи. Помогите с программой:

"Написать программу, которая считывает линейный массив из файла, выводит его на экран и определяет, упорядочен ли он по возрастанию." на языке c++.

Вот проверка на упорядоченность (например как вариант):

int Check(int *a, int n)
{
return n < 2 ? 1 : (a[n - 2] > a[n - 1] ? 0 : Check(a, n - 1));
}


Заранее спасибо за помощью
14
15 ноября 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: YuninDen

Вот проверка на упорядоченность (например как вариант):

int Check(int *a, int n)
{
return n < 2 ? 1 : (a[n - 2] > a[n - 1] ? 0 : Check(a, n - 1));
}


Заранее спасибо за помощью


Это кто над вами так пошутил? :D
Ну, а где остальное? Там же где и спасибо - за помощью?

77K
17 ноября 2011 года
Born66613
1 / / 17.11.2011
ребят помогите пожалуйста на языке с++
это залача обговаривалась еще в начале темы но так ее и не решили

Элемент матрицы называется локальным минимумом, если его значение строго меньше значений всех имеющихся соседей. Подсчитать количество локальных минимумов заданной матрицы и напечатать информацию о каждом из них.
77K
18 ноября 2011 года
aliska
1 / / 18.11.2011
Ребят, напишите задачу, кто может помочь:
1) дана матрица А(4,4) найти сумму отрицательных элементов, расположенных ПОД главной диагональю, и адрес ячейки, где эта сумма хранится.
2) 1. определить время записи одного блока на дискету.
2. вывести число байт в секторе.
3. определить число скрытых секторов.

*в паскале еще хоть как-то программировала, а язык си для меня вообще темный лес.=(
так же как примерно понимаю решение первой задачи, а второй понятия не имею.=(((

пожалуйста, помогите, очень надо...
77K
26 ноября 2011 года
KoTbI4
1 / / 26.11.2011
Помогите , помогите решить несколько задач :
[ATTACH]5418[/ATTACH]
78K
28 ноября 2011 года
Останин
1 / / 28.11.2011
Ребят помогите пожалуйста, я ничего не понимаю в с++
Нужно решить задачу на массивы:
1)Найти индекс минимального элемента
2)Переставить в начало массива элементы, кратные заданному числу
3)Вставить заданное число после каждого не отрицательного элемента
4)Удалить строки содержащие заданное количество нулевых элементов
5)Определить есть ли в строке заданная удвоенная буква
78K
02 декабря 2011 года
Kusenka
2 / / 02.12.2011
помогите,пожалуйста, решить задачу в С++
В одномерном массиве, состоящем из N вещественных чисел, вычислить:
a) сумму абсолютных величин всех элементов массива
b) найти максимальный элемент массива и его номер (индекс)
Примечания и требования:
1) Написать функции, реализующие вычисления.
2)Протестировать эти функции при N = 16
3)Проинициализировать массив внутри ф-ции main.
4)Вывести на экран в удобной и наглядной форме исходный массив и результаты
271
02 декабря 2011 года
MrXaK
721 / / 31.12.2002
Цитата: Kusenka
помогите,пожалуйста, решить задачу в С++
В одномерном массиве, состоящем из N вещественных чисел, вычислить:
a) сумму абсолютных величин всех элементов массива
b) найти максимальный элемент массива и его номер (индекс)
Примечания и требования:
1) Написать функции, реализующие вычисления.
2)Протестировать эти функции при N = 16
3)Проинициализировать массив внутри ф-ции main.
4)Вывести на экран в удобной и наглядной форме исходный массив и результаты



Код:
int gAbs (int x, int y) {
  return x+abs(y);
}

/* в main: */
    vector<int> arr(N);
    // делаем что-то с массивом, заполняем там и т. п.
    int sum = accumulate(arr.begin(), arr.end(), 0, gAbs);  
    cout<<"Сумма абсолютных величин: "<<sum<<endl;
   
    vector<int>::iterator max=max_element( arr.begin(), arr.end() );
    cout<<"Максимальный элемент по адресу:"<<distance(arr.begin(), max)<<endl<<"Значение:"<<*(max);
78K
07 декабря 2011 года
нови4ок
1 / / 07.12.2011
ПОМОГИТЕ, пожалуйста написать программку на си++
В массиве записаны значения роста 13 юношей класса. В середине -учебного года ученик, рост которого был записан в третьей ячейке массива, был переведен в другую школу. Внесите это изменение в массив
14
08 декабря 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: нови4ок
В середине -учебного года ученик, рост которого был записан в третьей ячейке массива, был переведен в другую школу. Внесите это изменение в массив


массив каким образом представлен? plain? vector?

77K
11 декабря 2011 года
[Dante]
3 / / 07.12.2011
Помогите решить задачу:
78K
14 декабря 2011 года
dpakonone
2 / / 14.12.2011
Здравствуйте, помогите пожалуйста написать программы в с++.

1 программа. Сортировка массива.

Условия сортировки:
а) Кратно 2
б) Представимо в виде 2 в степени n
в) По убыванию

2 программа. Удалить прилагательные из текста.

Помогите пожалуйста, а то вообще нуб в программировании.
Заранее спасибо, тем кто отзовется.
14
14 декабря 2011 года
Phodopus
3.3K / / 19.06.2008
зачем оно вам, если вы нуб?
78K
14 декабря 2011 года
dpakonone
2 / / 14.12.2011
Для информатики
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог