
- •Основы программирования язык “с” Минск – 2005
- •§1 Введение в программирование
- •Void main()
- •Void main()
- •Void main()
- •2 Распечатать свою фамилию следующим образом
- •3. Распечатать прямоугольник следующим образом
- •1.1 Простые программы: печать стоки текста Понятие переменной.
- •Volatile while
- •1.2 Целый тип данных
- •1.3 Числа с плавающей точкой
- •Void main({
- •1.4 Символьный тип
- •Void main()
- •§2 Управляющий структуры
- •2.1 Структура выбора if (если) и if/else(если - иначе)
- •Void main()
- •Void main()
- •2.2 Структуры повторенийfor(цикл)
- •Void main()
- •Void main()
- •2.3 Структура повторения while (пока)
- •Void main()
- •Void main()
- •Void main(){
- •Void main()
- •Void main()
- •2.4 Структура многомерного выбора switch
- •Void main()
- •Void main()
- •2.5 Операторы continue и break
- •Void main()
- •Void main()
- •2.6 Контрольные вопросы:
- •§3 Функция
- •Int printf(“const char * string”,…); %[флаг][ширина][точность][модификатор типа] тип_формата
- •Int scanf(const char * format, ……); возвращаемое значение – число считанных полей
- •3.1 Определение функции:
- •3.2 Классы памяти.
- •3.3 Указатели
- •Void main()
- •Void fff(int,int,int*,int*,int*,double*);
- •Void main()
- •Void fff(int a,int b,int*p1,int*p2,int*p3,double*p4)
- •Генерация случайных чисел.
- •Void main()
- •Void main()
- •Void main()
- •Void main(){
- •Void main()
- •3.6 Переменные перечисляемого типа
- •Int rollDice();
- •Void main()
- •Int sum,myPoint;
- •Int rollDice(){
- •Int die1,die2,workSum;
- •Void main()
- •§4 Массивы
- •4.1 Одномерные массивы
- •Int array[10];
- •4.2 Примеры использования массивов
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •4.3 Сортировки массивов
- •Void main()
- •Void main()
- •Void main()
- •Void main(){
- •Int arr1[maxsize],arr2[maxsize],buf;
- •Void main()
- •4.4 Передача массивов функции
- •4.5 Двумерные массивы
- •Void main()
- •Int I,j,temp;
- •Void main()
- •4.6 Контрольные вопросы:
- •§5 Символьная строка
- •5.1 Объявление символьной строки
- •Void main()
- •Void main()
- •Int srav(char *,char *);
- •Void main()
- •Int srav(char *X,char *y)
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •5.3 Массив строк
- •Void main()
- •Void main()
- •Void main()
- •§6 Динамическое распределение памяти
- •6.1 Функция malloc()
- •Void * malloc(unsigned size)
- •Void free(free *ptr)
- •Void main(){
- •Void main(){
- •Void vvod_mas(int*,int);
- •Void sort_vozr(int*,int);
- •Void main()
- •Vvod_mas(ptr1,n1);
- •Vvod_mas(ptr2,n2);
- •Void sort_vozr(int*X,int n)
- •Void vvod_mas(int*X,int n)
- •6.2 Функция сalloc()
- •Void * сalloc(unsigned num ,unsigned size)
- •6.3 Функция realloc()
- •Void * realloc(void *ptr ,unsigned size)
- •§7 Структура
- •7.1 Объявление структуры
- •Void main()
- •7.2 Объединения
- •§8 Файлы и потоки
- •8.1 Объявления файла
- •Int feof(file *);
- •8.2 Работа с текстовым файлом
- •Int fprintf(file *, const char format, …);
- •Void main()
- •Int account;
- •Int fputs(const char *, file *);
- •Int fscanf( file *, const char *format, …..);
- •Void main()
- •Void main()
- •Int account;
- •Void main()
- •Int fseek(file *,long ,int );
- •Void main()
- •Void main()
- •Void main()
- •Void show_file(file *k1)
- •Void dobav_file(file *k1)
- •Void fill_file(file *k1)
- •Создание файла произвольного доступа.
- •8.3 Работа с бинарным файлом
- •Void main()
- •Void main()
- •Void print_file(file *);
- •Void main(){
- •If(feof(k1)){
- •If(feof(k2)){
- •Void print_file(file *k){
- •8.4 Kонтрольные вопросы
- •Какие операции определены со строками?
Void main()
{
char m[100];
int n=0,i;
printf("Ввести строку: ");
scanf("%s",m);
for(i=0;m[i];i++)
{
n*=10; n+=m[i]-'0';
}
printf("\n%d\n",n);
}
Ввести дату в строку следующим образом: 12/05/1956 и программа распечатывает строку следующим образом: 12 мая, 1956 года (использовать оператор switch).
*Ввести число, например 3451 программа должна напечатать три тысячи четыреста пятьдесят один.
Ввести число, посчитать, сумму цифр введенного числа используя char
#include<stdio.h>
Void main()
{
char s[50];
int x,i,sum=0;
printf("Введите число: ");
scanf("%s",s);
for(i=0;s[i]!='\0';i++)
{
if(s[i]=='-' && i==0)
continue;
x=s[i]-'0';//преобразования символа в число
sum+=x;
}
printf("summa=%d\n",sum);
}
10. С помощью данной программы можно определить код символа.
#include<stdio.h>
Void main()
{
int x;
char ch;
x=getchar();
ch=(char)x;
printf("%c=%d\n",ch,x);
}
11. За один просмотр исходного текста определить, сколько раз встречается каждый символ
#include<stdio.h>
Void main()
{
char arr[256],text[500];
int i,j;
for(i=0;i<256;i++)
arr[i]=0;//Обнуляем массив встречаемости символов
printf("\nВведите текст:\n");
gets(text);
for(j=0;text[j];j++)
{
i=(unsigned char)text[j];//аналогично i=(int)text[j];
arr[i]++;
}
for(i=0;i<256;i++)
{
if(arr[i])
printf("\nСимвол '%c' встречается %d раз",i,arr[i]);// если в printf ‘%c’,то i выводится как //символ.
}
}
12. Ввести строку. Написать функцию, которая получает данную строку и выводит на экран результатов каждое слова с новой строки. Например, если ввели
Москва столица России!!! 123 456, то получаем
Москва
столица
России!!!
123
456
5.3 Массив строк
char array[3][50]; объявляется двумерный массив array, состоящий из трех строк по 50 байт.
Примеры:
Ввод и вывод массива строк.
#include<stdio.h>
Void main()
{
char string[5][20];
int i;
for(i=0;i<5;i++)
{
printf("Строка %d\n",i+1);
gets(string[i]);
}
for(i=0;i<5;i++)
puts(string[i]);
}
Ввести массив из пяти строк, рассортировать в алфавитном порядке
#include<stdio.h>
#include<string.h>
Void main()
{
char string[5][20],buf[20];
int i,j,k;
for(i=0;i<5;i++)
{
printf("Строка %d\n",i+1);
gets(string[i]);
}
for(i=0;i<4;i++)
{
for(k=i,j=i+1;j<5;j++)
if(strcmp(string[k],string[j])>0)
k=j;
strcpy(buf,string[i]);
strcpy(string[i],string[k]);
strcpy(string[k],buf);
}
puts("");
for(i=0;i<5;i++)
puts(string[i]);
}
Ввести массив строк, в который записываются целые числа, преобразовать их в массив чисел и вывести.
#include<stdio.h>
Void main()
{
char m[5][100],*s;
int n[5],i;
for(i=0;i<5;i++)
scanf("%s",m[i]);
for(i=0;i<5;i++)
{
for(s=m[i],n[i]=0;*s;s++)
{
n[i]*=10;
n[i]+=*s-'0';
}
}
puts("");
for(i=0;i<5;i++)
printf("%d\n",n[i]);}
§6 Динамическое распределение памяти
Одним из способов хранение информации, является использование системы динамического выделения памяти языка “С”. При этом память выделяется из свободной области памяти по мере надобности и возвращается назад, т.е. освобождается, когда необходимость в ней исчезает. Т.к. память выделяется и освобождается, то можно использовать ту же самую память в другой момент времени и для других целей в другой части программы. Ядром динамического выделения памяти в “С” являются функции, объявленные в стандартной библиотеке в загаловном файле stdlib.h.