
- •Основы программирования язык “с” Минск – 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онтрольные вопросы
- •Какие операции определены со строками?
§5 Символьная строка
5.1 Объявление символьной строки
Строка – это нуль или более символов, заключенных в двойные кавычки. Например: “Привет!!!”, и кавычки не входят в строку. Фактически строковая константа – эта массив символов. Во внутреннем представлении строки в конце автоматически помещается нуль-символ ‘\0’, поэтому для строки требуется на один байт больше памяти. Строка доступна через указатель на первый символ в строке, а значением строки является адрес ее первого символа. В этом смысле строки подобны массивам, потому что массив так же является указателем на свой первый элемент. Если задается размер массива, а строка длиннее, то выдается сообщение об ошибке. Если задан размер массива, а строка короче, то лишние элементы массива содержат так называемый “мусор”. Необходимо запомнить, что символьная константа и строка, содержащая один символ не одно и тоже!!!, т. е. ‘x’!=”x”, т.к. “x” – это массив символов, который кроме символа x содержит еще и символ ‘\0’.
Объявления символьной строки
char color[]=”синий”;
char color[6]=”синий”;
char *color=”синий”;
char color[]=” ’с’ ‘и’ ‘н’ ‘и’ ‘й’ ‘\0’ ”;
-
0
1
2
3
4
5
‘с’
‘и’
‘н’
‘и’
‘й’
‘\0’
Все три объявления строки возможны, но предпочтительны первые два.
Функции ввода символьной строки
char* gets( char *buffer); считывает символьную строку из стандартного входного потока и помещает ее по адресу, заданному указателем buffer. Прием строки заканчивается, если функция обнаружит символ ‘\n’ и данный символ заменяется на символ ‘\0’.
Возвращает указатель на считанную строку.
int scanf(const char * format, *buffer) считывает символьную строку из стандартного входного потока и помещает ее по адресу, заданному указателем buffer. Прием строки заканчивается, если функция обнаружит символ ‘\n’или” ” и данный символ заменяется на символ ‘\0’.
Возвращаемое значение – число считанных полей
Функции вывода символьной строки
int puts( const char *string ); записывает символ в стандартный поток данных и символ ‘\0’заменяется на ’\n’.
Возвращает код переданного символа..
int printf(const char * format, ……); записывает символ в стандартный поток вывода символ ‘\0’ игнорируется.
Возвращаемое значение – число записанный в поток символ
Для просмотра введенных символов строки используется
Примеры:
Ввести строку и распечатать каждый ее символ с новой строки
#include<stdio.h>
Void main()
{
char x[100];
int i;
puts("Введите строку: ");
gets(x);
for(i=0;x[i]!='\0';i++)
printf("%c\n",x[i]);
}
Ввести строку определить, сколько символов содержит данная строка
#include<stdio.h>
Void main()
{
char x[100];
int i;
puts("Введите строку: ");
gets(x);
for(i=0;x[i]!='\0';i++);
printf("\n%s - содержит %d символов\n",x,i);
}
Ввести строку и распечатать данную строку в обратном порядке.
Ввести строку и переписать ее в обратном порядке в новую строку.
Ввести строку заменить символ «а» на символ «!» в данной строке.
Посчитать сколько раз в словах встречается буква «а» и поменять первый и последний символ
Посчитать число слов
Написать функцию присвоения строк. Прототип функции char* prisv(char*,char*); т.е. присвоить вторую строку первой и вернуть первую строку.
Написать функцию добавления строк. Прототип функции char* dobav(char*,char*); т.е. добавить вторую строку первой и вернуть первую строку.
Написать функцию, которая считает количество введенных символов. Прототип функции int* dlina(char*);получает строку и возвращает количество введенных символов
Написать функцию, которая сравнивает строки и возвращает: 0 если строки равны; 1 если в первой строке встретился символ больше чем во второй строке и -1 в противном случае. Прототип функции int* srav(char*, char*);
#include<stdio.h>