Вы находитесь на странице: 1из 4

билет 18

1. Які існують функції введення-виведення в мові С? Приведіть значення параметрів


специфікації. Які спеціальні символи може в себе включати рядок форматів?

Функция printf(строка форматов, список выводимых переменных ) выполняет


форматированный вывод переменных указанных в списке в соответствии со , , строкой форматов .
Функция scanf(строка форматов, список адресов вводимых переменных ) выполняет ввод
переменных адреса которых указанны в списке в соответствии со строкой , , форматов.

cout - оператор вывода на экран cin - оператор ввода с клавиатуры. С помощью


объекта cin и операции >> можно присвоить значение любой переменной. Например,
если переменная x описана как целочисленная, то команда cin>>x; означает, что в
переменную x будет записано некое целое число, введенное с клавиатуры. Если
необходимо ввести несколько переменных, то следует написать
cin>>x>>y>>z;.Объект cout и операция << позволяет вывести на экран значение
любой переменной или текст. Текст необходимо заключать в двойные кавычки.
Запись cout<<x; означает вывод на экран значения переменной x.
 Для функций printf, scanf существуют спецификаторы формата. Это условные обозначения,
позволяющие считать из входящего потока определенную конструкцию и сохранить
ее.Существует довольно большое число спецификаторов, но используют обычно лишь
несколько из них

2. Динамічні масиви в С++. Функції calloc, malloc, realloc і free та операції new і
delete

В С++ операції new і delete призначені для динамічного розподілу пам'яті комп'ютера.


Операція new виділяє пам'ять з області вільної пам'яті, а операція delete вивільняє виділену
пам'ять. Виділювана пам'ять, після її використання повинна вивільнятися, тому
операції new і delete використовуються парами. Навіть якщо не вивільняти пам'ять явно, то вона
звільниться ресурсами ОС по завершенню роботи програми. Рекомендую все-таки не забувати
про операцію delete.

С помощью указателей в Си можно выделить участок памяти динамический массив ( 1) заданного


размера для хранения данных определенного типа Для этого необходимо . выполнить следующие
действия : 1. Описать указатель например переменную определенного типа ( , p) . 2. Начиная с адреса
определенного указателем с помощью функций или , , calloc, malloc операции выделить участок
памяти определенного размера После этого будет new . p адресом первого элемента выделенного
участка оперативной памяти й элемент (0- массива будет адресовать следующий элемент в
выделенном участке памяти ), p+1 (1- ), & , p+i i- . й элемент динамического массива является адресом
го элемента Необходимо только следить чтобы не выйти за границы выделенного участка памяти , . К
му элементу динамического массива можно обратиться одним из двух способов i- p *(p+i) p[i]. или 3.
Когда участок памяти будет не нужен его можно освободить с помощью функции , free(), delete.

Единственным параметром функции является целое беззнаковое значение malloc , определяющее


размер выделяемого участка памяти в байтах Функция возвращает . malloc бестиповый указатель на
выделенный участок памяти Обращение к функции (void *) . malloc имеет вид void *malloc(n);

Кроме функции для выделения памяти в Си есть функция Ее особенностью malloc calloc. является
обнуление всех выделенных элементов Обращение к функции имеет вид . : void *calloc (num, size);
Функция выделяет элементов по байт и возвращает указатель на выделенный calloc num size участок
или при невозможности выделить память NULL .

Функция изменяет размер выделенной ранее памяти обращение к ней имеет вид realloc , : char
*realloc(void *p, size); Функция изменяет размер участка памяти на который указывает новый размер
участка , p, памяти Если при этом пришлось изменять месторасположение участка памяти то новое
size. , его месторасположение и возвращается в качестве результата Если в качестве передается . p
NULL, realloc malloc. то функция работает аналогично функции

Для освобождения выделенной памяти используется функция Обращение к ней имеет free. вид void
free( void *p); Освобождает память выделенную память указатель на участок память ранее , , p ,
выделенный функциями или calloc, malloc realloc.
Для выделения памяти в С есть еще операция ++ new. Ниже приведено решение задачи поиска суммы
элементов динамического массива вещественных чисел с помощью операции new.
Освобождение выделенного с помощью new участка памяти осуществляется с помощью
оператора delete следующей структуры:

delete [ ] p;

Вичислити значення двох функцій в n рівномірно розподілених в діапазоні а ≤


x ≤ b точках. Результати оформити у вигляді таблиці.
#include <stdio.h>
#include <math.h>
#include<locale.h>

int main()
{
setlocale(LC_ALL, "");
double F1, F2, x, dx, a = 2, b = 9;
int i = 0, n = 14;

dx = fabs(b - a) / (n - 1);
x = a;
printf_s(" __________________________________\n");
printf_s(" | I| X | F1 | F2 | \n");
printf_s(" | | | | |\n");
while (i <= n)
{
++i;
F1 = sqrt(exp(x) + 1);
F2 = x * pow(log(x + 1), 2);
printf_s(" |%2d| %8.2f |%8.2f| %8.2f|\n", i, x, F1, F2);
;
}
printf_s(" __________________________________\n");

return 0;

Дано 24 цілі числа. Роздрукувати їх в зворотному порядку по шість чисел в


рядку.
#include <iostream>
using namespace std;

int main()
{
const int n = 24;
int k = 0;
int arr[n] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,22,24 };
for (int i = n - 1; i >= 0; i -= 6)
{
for (int j = 0; j < 6 && k < n; j++, k++)
cout << arr[i - j] << " ";
cout << endl;
}
system("pause");
return 0;
}

Вам также может понравиться