
Void change ( int *a, int *b )
{ int t=*A; *A = *B; *B = t; }
Void bubble ( int a[], int l, int r )
{
int i, j;
for ( i=L; i<R; i++ )
for ( j=R; j>i; j--)
if ( a[j] < a[j-1] )
change ( a+j, a+j-1 );
}
main ()
{
int i, m[NN];
long int t0, t;
randomize(); /* инициализация генератора случайных чисел */
begin:
clrscr();
printf ( "ПРОГРАММА ДЛЯ СОРТИРОВКИ ЧИСЕЛ ПУЗЫРЬКОВЫМ МЕТОДОМ" );
printf ( "\n\nИсходный массив из %d чисел:\n", NN );
/* Генерация и печать псевдослучайных чисел */
for ( i=0; i<NN; i++ )
{ m[i] = rand(); printf ( "%8d", m[i] ); }
printf ( "\nДля начала сортировки нажмите любую клавишу.\n" );
getch();
/* Сортировка чисел */
tic0 = clock();
bubble ( m, 0, NN-1 );
tic = clock() – tic0;
/* Печать отсортированных чисел */
printf ( "\nОтсортированный массив чисел:\n" );
for ( i=0; i<NN; i++ )
printf ( "%8d", m[i] );
printf ( "\nПузырьковый метод: элементов = %d; тиков = %ld", NN, tic );
printf ( "\nДля продолжения нажмите любую клавишу; <Esc> - выход" );
end:
if ( getch() != 27 )
goto begin;
}
/* Сортировка выбором */
#include <stdio.h> /* printf() */
#include <stdlib.h> /* rand(), randomize() */
#include <conio.h> /* clrscr(), getch() */
#include <time.h> /* clock(), randomize() */
#define NN 100
Void selection ( int a[], int l, int r )
{
int i, j;
for ( i=L; i<R; i++ )
{ int min=i;
for ( j=i+1; j<=R; j++)
if ( a[j] < a[min] )
min = j;
{ int t=a[i]; a[i] = a[min]; a[min] = t; }
}
}
main ()
{
int i, m[NN];
long int tic0, tic;
randomize();
begin:
clrscr();
printf ( "ПРОГРАММА ДЛЯ СОРТИРОВКИ ЧИСЕЛ МЕТОДОМ ВЫБОРА" );
printf ( "\n\nИсходный массив из %d чисел:\n", NN );
/* Генерация и печать случайных чисел */
for ( i=0; i<NN; i++ )
{ m[i] = rand(); printf ( "%8d", m[i] ); }
printf ( "\nДля начала сортировки нажмите любую клавишу." );
if ( getch() == 27 ) goto end;
/* Сортировка чисел */
tic0 = clock();
selection ( m, 0, NN-1 );
tic = clock();
/* Печать отсортированных чисел */
printf ( "\nОтсортированный массив чисел (%ld):\n", tic-=tic0 );
for ( i=0; i<NN; i++ )
printf ( "%8d", m[i] );
printf ( "\nСортировка выбором: элементов = %d; тиков = %ld", NN, tic );
printf ( "\nДля продолжения нажмите любую клавишу; <Esc> - выход" );
end:
if ( getch() != 27 )
goto begin;
}
/* СОГЛАСОВАНИЕ НАЗВАНИЯ ВАЛЮТЫ с ВВЕДЕННЫМ ЧИСЛОМ */
#include <stdio.h>
#include <conio.h>
#include <string.h>
char s[20], /* рабочий массив */
r[]="рубл"; /* постоянная часть названия валюты */
main()
{
Int numb, /* введенное число */
last, /* часть введенного числа в диапазоне от 0 до 19 */
i;
clrscr(); /* начало работы */
begin:
printf("Введите число: ");
scanf("%d",& numb);
last=numb;
if ( last > 100 ) /* выделение двух последних цифр */
last %= 100;
if ( last > 20) /* выделение чостатка в диапазоне 0 -19 */
last %= 10;
switch ( last ) /* присоединение окончания тремя способами */
{ case 1: for ( i=0; r[i]; i++) /* вариант 1 */
s[i] = r[i];
s[i]='ь';
s[i+1]='\0';
break;
case 2:
case 3:
case 4: sprintf ( s, "%s%s", r, "я" ); /* вариант 2 */
break;
default: strcpy ( s, r ); /* вариант 3 */
strcat ( s, "ей" );
}
printf("\n %d %s\n\n",numb,s);
if ( getch() != 27 )
goto begin;
}
/* 411 - включение/выключение динамика */
#include <dos.h> /* inportb(), outportb() */
#include <conio.h> /* getch() */
main()
{
unsigned char b;
unsigned int d=2000;
b = inportb ( 0x61 ); /* чтение */
b = b | 3; /* OR */
outportb ( 0x61, b ); /* вкл. динамика */
outportb ( 0x43, 182 );
outportb ( 0x42, d % 256 );
outportb ( 0x42, d / 256 );
getch (); /* ожидание*/
b = b & 0xFC; /* AND */
outportb ( 0x61, b ); /* выкл. динамика */
}