Язык си
1) Ввод библиотек.
#include<stdio.h.
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include <locale.h>
setlocale(LC_ALL, ""); - после int main - включает русский язык
2) Функция main
int main()
{
.
.
.
return 0;
}
3) Виды переменных
- целые числа – тип int (%d)
- вещественные числа – тип double(%f), float (%f) - или еще %.2f - 2 точки после запятой
- и символы – тип char (%c)
4) Оператор switch
char answer; // создаем переменную
printf("Введите ваш вариант ответа: ");
scanf("%c",&answer); // ввод с клавиатуры
switch (answer) { -
case 'a': printf("GOOD!\n"); break; // если ввели "a", то будет вывод такой
case 'b': // тут если пропуск - повторяется как выше
case 'c': // тут тоже
case 'd': printf("BAD!\n"); break; // если "d" - вывод такой
default: printf("ERROR!\n"); break; // в остальных случаях вот такая штука
}
5) Оператор if - else
if ( x < 0 ) { // условие
printf("Negative!\n");
} else { // или же если
if ( x == 0 ){
printf("Zero!\n");
} else { // или же если
printf("Positive!\n");
}
}
6) Оператор for
for (int i = 0; i < 100; i = i + 1)
{
printf или что-то такое тут
}
7) Оператор while
while(control != 0) //проверяется условие, если условие не выполняется -
все что в фигурных скобках работать не будет
{
}
8) Оператор do while (зацикливание или постусловие)
do {
scanf("%lf", &temp);
sum = sum + temp;
k = k + 1; // счетчик
} while(k <= 5); //5 раз выполнится
Грубо говоря это можно юзать для счетчика, либо для того, чтобы выолнилась какая-то штука в 1 раз, а потом в остальные разы проверялось условие
9) Главная и не главная функции
int max_num(int a, int b) // создаем функцию
{
int max = b;
if (a > b)
max = a;
return max;
}
//основная программа
int main(void) //основная функция
{
int x = 0, y = 0;
int m = 0;
scanf("%d %d", &x, &y);
m = max_num(x,y); // подставляем в переменную переменную из функции и в скобках порядок
printf("max(%d,%d) = %d\n",x,y,m);
return 0;
}
Иногда бывает удобно
10) Массивы
int arr_int[8];
double arr_float[11];
float number[2000]; // так объявляются массивы. так в них хранится мусор
double arr[50] = {0}; // так в массиве хранятся все числа равные 0
Простая программа для вывода каждого числа массива:
#include <stdio.h>
int main(void){
int arr[5] = {2, 4, 3, 5, 5}; // при объявлении в квадратных скобках - размер массива
printf("%d %d %d %d %d\n",arr[0], arr[1], arr[2], arr[3], arr[4]); // при выводе или
просто присваивании и тд в квадратных скобках номер числа в массиве (начинается с 0)
return(0);
}
Но для этого легче использовать циклы:
#include <stdio.h>
int main(void) {
int arr[100] = { 0 };
for (int i = 0; i < 100; i = i + 1) {
arr[i] = i;
}
for (int i = 0; i < 100; i = i + 1) {
printf("%d\t", arr[i]);
}
getch();
return(0);
}
11) Двумерные массивы
int arr2[4][8] = {0}; // нулями
int arr [2][4] = {{1,2,4,29},{3,4,6,1}}; //произвольными значениями
// первое число в скобках - число столбцов
// второе число в скобках - число строк
При присваивании или выводе делается вот так:
12) Строки
Строка - это массив символов
Объявляется вот так:
char str[10];
char str1[10] = {'Y','o','n','g','C','o','d','e','r','\0'};
char str2[10] = "Hello!";
char str3[] = "Hello!";
Вывод строки делается вот так (3 способа):
puts(str1);
printf("%s\n",str2);
puts(str3);
Ввод строки с клавиатуры:
#include <stdio.h>
int main(void) {
char str[20];
gets(str); // вводим сюда че хотим
puts(str); // выводим че ввели
return 0;
}
#include <stdio.h>
int main(void) {
char str[10];
fgets(str, 10, stdin); // получить для стр, 10 символов (то есть 9 - 1 под ноль в конце),
ввод с клавиатуры
fflush(stdin); // очищаем поток ввода
puts(str);
int h = 99;
printf("do %d\n", h);
scanf("%d",&h);
printf("posle %d\n", h);
return 0;
}
Функции для работы со строками через #include <string.h>:
strlen - вычислить длину строки (число символов):
#include <stdio.h>
#include <string.h>
int main(void) {
// объявляем три строки
char str1[19] = "Peace! ";
int l1 = strlen(str1); // вычисляем длину первой строки
// выводим на экран строку str1 и её длину
printf("%d\n", l1);
return 0;
}
strcat - склеивание строк (следить за тем чтобы вместилось):
#include <stdio.h>
#include <string.h>
int main(void) {
// объявляем три строки
char str1[19] = "Peace! ";
char str2[] = "Labor! ";
char str3[] = "May!";
// выводим строки на экран
printf("str1: %s\n",str1);
printf("str2: %s\n",str2);
printf("str3: %s\n\n",str3);
// присоединяем к первой строке вторую
strcat(str1, str2);
// теперь str1 = "Peace! Labor!"
// присоединяем к первой строке третью
strcat(str1, str3);
// теперь str1 = "Peace! Labor! May!"
// выводим на экран строку str1 и её длину
printf("str1: %s %d\n",str1, strlen(str1));
return 0;
}
сравнение строк strcmp - если строка больше -1, меньше - (-1), равна - 0:
#include <stdio.h>
#include <string.h>
int main(void) {
char str1[] = "hello world",
str2[] = "hello world",
str3[] = "hello World";
// сравниваем строки между собой
int n12 = strcmp(str1,str2);
int n13 = strcmp(str1,str3);
int n31 = strcmp(str3,str1);
// выводим строки и результат работы strcmp
printf(" %s i %s = %d\n", str1, str2,n12);
printf(" %s i %s = %d\n", str1, str3,n13);
printf(" %s i %s = %d\n", str3, str1,n31);
// выводим седьмой символ в строке и его ASCII-код
printf("%c / %d\n",str1[6],str1[6]);
printf("%c / %d\n",str3[6],str3[6]);
return(0);
}
strcpy - копирование строк:
копирует первую строку во вторую:
#include <stdio.h>
#include <string.h>
int main(void) {
char str1[] = "Hello World!",
str2[] = "Hi man!";
printf("str1: %s \nstr2 %s\n\n", str1, str2);
strcpy(str1, str2);
printf("str1: %s \nstr2 %s\n", str1, str2);
return(0);
}