Similar presentations:
Определение и работа с функциями, строками и вводом с клавиатуры (C++)
1. Определение функции
Функция определяет действия, которые выполняетпрограмма. Функции позволяют выделить набор
инструкций и назначить ему имя. А затем многократно
по присвоенному имени вызывать в различных частях
программы. По сути функция - это именованный блок
кода.
тип имя_функции(параметры)
{
инструкции
}
void print()
{
printf_s("Hello_world \n");
}
void hello()
{
printf_s("hello_world!" );
}
int main()
{
print();
}
2. Параметры функции
(тип_параметра1 имя_параметра1, тип_параметра2 имя_параметра2, ... тип_параметраNимя_параметраN)
void print(double a, double b)
{
printf_s("Вы передали параметры:%f %f \n", a,
printf_s("Сумма %f ", a + b);
}
int main()
{
print(5.5, 4.4);
}
b );
3. Оператор return и возвращение результата
int sum(int n, int m){
int res = n + m;
return res;
}
int main()
{
int result = sum(10, 6);
// 16
printf_s("%i \n", result); // 16
printf_s("%i \n", sum(10, 7)); // 17
printf_s("%i \n", sum(10, 8) );
//
18
return 0;
}
4.
int calculate(int, int, char);int main()
{
printf_s( "%d \n", calculate(10, 6, '+'));
printf_s("%d \n", calculate(10, 6, '-'));
printf_s("%d \n", calculate(10, 6, '*')) ;
printf_s("%d \n", calculate(10, 6, '/'));
}
int calculate(int n, int m, char op)
{
switch (op)
{
case '+':
return n + m;
case '-':
return n - m;
case '*':
return n * m;
default:
return 0;
}
}
// 16
// 4
// 60
// 0
5. Строки
char hello1[] {'h', 'e', 'l', 'l', 'o'};char hello2[] {"hello"}; // {'h', 'e', 'l', 'l', 'o', '\0'}
char hello1[]{ 'h', 'e', 'l', 'l', 'o' };
char hello2[]{ 'h', 'e', 'l', 'l', 'o', '\0’};
char hello3[]{ "hello" }; // {'h', 'e', 'l', 'l', 'o', '\0’}
printf_s("%s \n", hello1);
printf_s("%s \n", hello2);
printf_s("%s \n", hello3);
//hello╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠hello
//hello
//hello
6. string
#include <cstdio>#include <string>
using namespace std;
int main()
{
string s1 = "Hello";
string s2("World");
string s3(10, 'A');
string s4 = s1 + " " + s2;
printf_s("%s \n", s1.c_str());
printf_s("%s \n", s3.c_str());
printf_s("%s \n", s4.c_str());
}
// Инициализация
// Конструктор
// "AAAAAAAAAA"
// Конкатенация
7. sprintf
sprintf — это функция форматированного вывода в строку (буфер) изстандартной библиотеки C. Она работает аналогично printf, но вместо
вывода на консоль записывает результат в строку.
Зачем нужна:
•Чтобы собрать строку из чисел, символов и других данных
по заданному формату.
•Удобно, когда нужно подготовить текст для записи в файл,
отправки по сети или вывода в GUI, а не в консоль.
8.
int main() {char buffer[100];
// Буфер для результата
// Форматируем и записываем в buffer
sprintf_s(buffer, "Hello, %s! You are %d years old.", "Alice", 25);
// Теперь buffer содержит: "Hello, Alice! You are 25 years old."
printf_s("%s\n", buffer);
return 0;
}
9. getch()
Читает один символ с клавиатуры без отображения на экране и без ожидания Enter.#include <conio.h>
// Для getch()
int main() {
char c;
printf_s("Press any key... \n ");
c = _getch(); // Символ читается сразу, не ждет Enter
printf_s("You pressed: %c \n", c);
return 0;
}
10. kbhit()
Проверяет, была ли нажата клавиша. Не ждет нажатия, сразу возвращаетрезультат.
#include <conio.h>
#include <stdio.h>
int main() {
printf_s("Проверяем, нажата ли клавиша...\n");
// Мгновенная проверка
if (_kbhit()) {
printf_s("Клавиша нажата!\n");
// Но мы ее НЕ прочитали!
}
else {
printf_s("Клавиша не нажата\n");
}
printf_s("Программа сразу продолжает...\n");
return 0;
}
11.
Аспектgetch()
kbhit()
Тип функции
Блокирующая
Неблокирующая
Ожидание
Ждет нажатия
клавиши
Не ждет, сразу
возвращает
Возвращаемое
значение
Символ (int)
0 или 1 (bool)
Что делает
Читает символ из
буфера
Проверяет, есть ли
символ в буфере
Буфер
Очищает буфер
Не очищает буфер
12. kbhit() + getch()
#include <conio.h>#include <stdio.h>
kbhit() + getch()
int main() {
setlocale(LC_ALL, "Russian");
printf_s("Нажмите любую клавишу (ESC для выхода)...\n");
while (1) {
// Проверяем, не нажата ли клавиша
if (_kbhit()) {
// Читаем нажатую клавишу
char c = _getch();
printf_s("Вы нажали: %c (код: %d)\n", c, c);
if (c == 27) { // ESC
printf_s("Выход...\n");
break;
}
}
else {
// Если клавиша не нажата, делаем что-то полезное
printf_s(".");
Sleep(100); // Задержка 100 мс
}
}
return 0;
}
programming