1

Тема: С++

Советы и листинги по С++

2

Re: С++

Объём куба

// Функция вычисления объёма куба
#include "stdafx.h"
#include "conio.h"
#include "iostream"
void main()
{   
    setlocale(LC_ALL,".1251");
float a;
float v;
float obyom (float razmer);
trek:    //метка перехода
printf ("Введите размер ребра куба  \n");
printf("  ");
scanf ("%f",& a);
v=obyom(a);
printf ("Объём куба равен %f куб.см \n", v);
printf("\n");
goto trek;
}
float obyom (float razmer)
{
    float ob;
    ob=razmer*razmer*razmer;
    return (ob);
}

3

Re: С++

Сортировка одномерного массива

//Метод "Пузырьковой сортировки"
//Разработчик - raven
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <cstdlib>
using namespace std;    //компилятор должен использовать пространство имён std
void main()
{
    setlocale ( LC_ALL, ".1251" ); //определение русского языка
        int x, size;
        int *array;
        void bubbleSort(int array[], int col);
        cout<<"Метод \"Пузырьковой сортировки\"\n\n";
trak:
        cout <<"\n";
        cout << "Введите размерность массива:\n";
    cout <<"     ";
    cin >> size;
        array = new int[size];
    cout << "\nВведите " << size << " элементов:\n";
    cout <<"  ";
        for ( i = 0; x < size; i ++ )
        {
                cin >> array[x];
        }
        bubbleSort( array, size );
         cout << "Ваш массива после сортировки:\n";
        cout <<"  ";
        for ( x = 0; x < size; x ++ )
        {
                cout << array[x] << " ";
        }
    cout << "\n\nНажмите \"Enter\" для продолжения..." << endl;
    _getch();
    goto trak;
}
void bubbleSort(int array[], int col)
{                   
        int temp=0;                             
        for (int x=1;  x<col  ;  x++)
    {           
     for (int j=0;  j<col-x;  j++)
    {     
        if (array [j]<array [j+1])    //поменяв знак < на > можно изменить порядок сортировки
        {     
            temp=array[j];           
            array [j]=array [j+1];   
            array [j+1]=temp;
         }
     }
  }
}
// x поменять на i

4

Re: С++

Запись в бинарный файл

//Запись в бинарный файл последовательность чисел от 0 до ....,
//затем вывод четных чисел из файла на экран.

#include "stdafx.h"
#include <iostream>
#include <conio.h>
void main()
{
    setlocale (LC_ALL, "Russian");
    FILE *k;           //объявляем файловую переменную
    int i;                  //переменная для обращения к элементам
    int x;                  //переменная для ввода последовательности
    char y;           //подтверждение выбора Yes
    char n;
    char b;          //переменная для выбора действия
       
    k=fopen("primer.txt", "w");
    printf("Запись в бинарный файл\"primer.txt\" последовательность чисел\n\n");
    printf("Введите предел последовательности чисел от нуля до - ");
    scanf("%d", &x);
   
    for (i=0;i<=x;i++)
    {
        fprintf(k, "%d ",i);
    }
    fclose (k);
    printf("Выполнено! Файл создан и числа записаны.\n\n");
    printf("Для продолжения нажмите любую клавишу\n\n");
    _getch();
    printf("\nВывести на экран чётные числа? (\"y\",\"n\") - ");
            scanf("%c%c", &b,&n);
        if (n=='y')
    {
    k=fopen("primer.txt", "r+");
    fseek(k,0,SEEK_SET);
    printf("\nЧётные числа:\n");
        for (i=0;i<=x;i++)
        {
        if (i%2==0)
        printf("%d, ",i);
       
        }
    }
    fclose (k);   

    printf("\n\nВыходим из программы");
   
_getch();

}

5

Re: С++

Создание динамичной матрицы
Двухмерный динамический массив
      Листинг программы
    /*--------Подключение библиотек---------*/
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>

    /*--------Тело программы---------*/
void main()        //главная функция программы, точка входа для консольного приложения

{
    setlocale (LC_ALL, "Russian");    //подключение русского языка
    /*--------Создание структуры---------*/
    int n;        //переменная для ввода количества элементов матрицы
 
    printf("Диагональные элементы матрицы заменить нулями.\n\n");
    printf("Введите количество элементов матрицы\n (только целые числа) ");
    //int n,tmp;
    scanf("%d", &n);
int **a = new int *[n];       //указатель
for(int i = 0; i<n; i++)    //1-й этап. Создание одномерного массива
{
a[?] = new int [n];
}
printf("Заполняем матрицу случайными числами\n\n");
system("PAUSE");
  for(int i = 0; i<n; i++)    //2-й этап. Создание матрицы
{
  for(int j = 0; j<n; j++)    //двойной цикл
  {
    a[?][j] = rand()%12;     // Заполняем матрицу случайными числами от 0 до 12
  }
}
printf("Печать полученной матрицы:\n\n");    // Печатаем матрицу

for (int i = 0; i < n; i++)
{
  for (int j = 0; j < n; j++)
   {
          printf("\t%d ", a[?][j]);
   }
  printf("\n");
}
    getch();
}
Примечание. Знак ? в листинге заменить на i