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

написать 2 программы до 11 числа. - C++

Восстановить пароль Регистрация
 
padlav
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 4
08.01.2011, 20:57     написать 2 программы до 11 числа. #1
Добрый вечер, учусь на 1 курсе, и дали задание написать две программы до 11 числа, иначе исключение.

для программ есть требования:
1)Подготовить текстовый файл с входными данными а именно в 1 строке количество элементов. а во второй строке сами элементы через пробел.

2)Разбить программу на функции ввода, обработки, и вывода.

3)Входные данные прочитать из файла.

4)Вывести результат на экран и дозаписать в файл.

А теперь собственно и сами задания:

1) В одномерном массиве произвести сортировку элементов по убыванию.

2) В одномерном массиве посчитать сумму элементов до последнего нуля.


Ооочень нужно.

кстати для 1 задания есть программа в неё надо добавить связку с файлом, и разбить на функции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream.h>
 
int main()
{ setlocale(0, "");
        int * arr, n;
        bool t = true;
        cout << "Vedite col-vo elementov: ";
        cin >> n;
        arr = new int [n];
        cout << "zapolniti massiv: " << endl;
        for (int i = 0; i < n; i++)
        {
                cout << "A[" << i << "] = ";
                cin >> arr[i];
 
        }
        while(t)
        {
                t = false;
                for (int i = 0; i < n - 1; i++)
                {
                        if (arr[i] < arr[i + 1])
                        {
                                swap(arr[i], arr[i + 1]);
                                t = true;
                        }
                }
        }
        cout << "massiv po ubivANIU: " << endl;        
 
    for (int i = 0; i < n; i++)
        {
                cout << arr[i] << endl;
        }
        delete [] arr;
        system("pause");
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2011, 20:57     написать 2 программы до 11 числа.
Посмотрите здесь:

Написать программы C++
C++ Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?
C++ Написать программу, которая подсчитывает СУММУ ЦИФР натурального числа. организовать повторение всей программы.
Написать функцию для разбиения числа на числа C++
C++ Написать рекурсивную функцию, которая вначале печатает все отрицательные числа, а затем все положительные числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
08.01.2011, 21:14     написать 2 программы до 11 числа. #2
padlav, Эти задачи елементарные, посидите пару часиков над книжкой и Вы их напишите сами.
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 22:13     написать 2 программы до 11 числа. #3
1) В одномерном массиве произвести сортировку элементов по убыванию.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <algorithm>
int* init_mass(int *mass,int n)
{
  for(int i=0;i<n;i++) std::cin >> mass[i];
  return mass;
}
 
void print_mass(int *mass,int n)
{
  std::cout << "Отсортированный массив:\n" 
  for(int i=0;i<n;i++) std::cout << mass[i] << " ";
  std::cout<<std::endl;
}
 
int main()
{
 int n;
 std::cout << "Введите размерность массива:\n"; 
 std::cin >> n;
 int * mass = new int[n];
 std::cout << "Введите массив:\n";
 mass=init_mass(mass,n);
 std::sort(mass,mass+n);
 std::reverse(mass,mass+n);
 print_mass(mass,n);
 delete[] mass;
}
padlav
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 4
08.01.2011, 22:23  [ТС]     написать 2 программы до 11 числа. #4
vx5, я 1 курс, и мы еще такое не проходили.
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
08.01.2011, 22:35     написать 2 программы до 11 числа. #5
В одномерном массиве посчитать сумму элементов до последнего нуля.
Реализовано на Visual C++ 2008

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdafx.h"
#include <conio.h>
#include <iostream>
 
using namespace std;
using namespace System;
 
 
int main(){
        int *mas = NULL;
        int size = 0, sum = 0, count = 0;
        cout<<"Vvedite kol-vo el-tov massiva: ";
        cin>>size;
        mas = new int [size];
        //заполнение массива
        cout<<"Zapolnite massiv: "<<endl;
        for (int i = 0; i < size; i++)
        {
        cin>>mas[i];
        }
            
        //поиск индекса в последовательности где стоит последний ноль
        for (int i = 0; i < sizeof(mas); i++)
        {
            if (mas[i]==0)
            {
                count = i;
            }
        }
        //подсчет суммы
        for (int i = 0; i < count; i++)
        {
            sum = sum + mas[i];
        }
        cout<<"Summa = "<<sum;
        getch();
        delete[] mas;
        return 0;
}
Добавлено через 2 минуты
а прочитать из файла это не сложно!
думаю сам догадаешся как это сделать!
padlav
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 4
08.01.2011, 23:25  [ТС]     написать 2 программы до 11 числа. #6
Kenwood2010, спасибо, но слегка не то)

Цитата Сообщение от Kenwood2010 Посмотреть сообщение
а прочитать из файла это не сложно!
думаю сам догадаешся как это сделать!
вот в этом то и вся проблема, я покопался во всех работах за семестр и нашел сумму элементов до последнего нуля

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#define n 10
int vvod( int p[]);
int vivod( int p[], int s1);
int obrab( int p[]);
int i;
int main()
{ clrscr();
  int a[n];
  vvod(a);
  vivod(a,obrab(a));
  getch();
  return 0;
}
int vvod(int p[])
{
 cout<<"\n vvvedite elenty massiva";
 for ( i=0;i<n;i++) cin>>p[i];
 return(0);
}
int obrab( int p[])
{ int s=0;
  for(i=n-1;!p[i];i--);
  return (s);
}
int vivod(int p[],int s)
{ cout<<"vivod elementov massiva";
  for(i=0;i<n;i++) cout<<setw(3)<<p[i];
  cout<<"\n s= "<<s<<endl;
  return( 0);}
Как сюда добавить чтение из файла?)
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 23:32     написать 2 программы до 11 числа. #7
Как сюда добавить чтение из файла?)
C++
1
2
3
4
5
6
7
#include <fstream>
int vvod(int p[])
{
 std::ifstream ifs("MYFILE"); 
 for ( i=0;i<n;i++) ifs>>p[i];
 return(0);
}
Добавлено через 1 минуту
C++
1
int i;
глобальная переменная - плохое решение.

Добавлено через 1 минуту
C++
1
2
3
int vvod( int p[]);
int vivod( int p[], int s1);
int obrab( int p[]);
и это не очень хорошее решение.. используйте указатели.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2011, 23:46     написать 2 программы до 11 числа.
Еще ссылки по теме:

C++ Написать программу, которая по одной из цифр 0,1,2,3, 4,5,6,7,8,9 – послед-ней цифре числа N - находит последнюю цифру квадрата этого числа
Написать программу, которая выводит квадрат, введенного с клавиатуры, числа в диапазоне от 0 до 10 включительно. При введении отрицательного числа осу C++
C++ Написать функцию, которая принимает 2 числа (n, m) и выводит на экран все числа от n до m

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
08.01.2011, 23:46     написать 2 программы до 11 числа. #8
В одномерном массиве посчитать сумму элементов до последнего нуля.
с помощью фенкций!
Бери и пользуйся!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <fstream>
 
using namespace std;
using namespace System;
 
 
int SearchNULL(int *m)
{
 int c = 0;
 for (int i = 0; i < sizeof(m); i++)
 {
 if (m[i]==0)
 {
  c = i;
 }
 }
 return c;
}
 
int Summa(int *m, int c)
{
 int s = 0;
 for (int i = 0; i < c; i++)
 {
 s = s + m[i];
 }
 return s;
}
 
int main()
{
 
        int *mas = NULL;
        int size = 0, sum = 0, count = 0, i = 0;
 
ifstream in("D:\\read.txt");
//проверка файла            
              if(!in)
    {
        cout<<"Error! Not fail!!!";
        getch();
              exit(1);
    }
 
//если все нормально работаем дальше
 
      in>>size; //читаем размер массива
        mas = new int [size];
 
        //заполнение массива
                    while(in >> mas[i++]);
 
    in.close(); //закрываем файл 
    count = SearchNULL(mas);
    sum = Summa(mas,count);       
    cout<<"Summa = "<<sum;
                getch();
                delete[] mas;
        return 0;
}
Внимание!
Содержимое файла:
1-я строка: 4 - кол-во элементов в массиве
2-я строка: 1 2 3 0 - сами значения элементов
Yandex
Объявления
08.01.2011, 23:46     написать 2 программы до 11 числа.
Ответ Создать тему
Опции темы

Текущее время: 05:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru