- •Алгоритмічні мови та програмування Методичні вказівки
- •Алгоритмічні мови та програмування Методичні вказівки
- •03056, Київ, вул..Політехнічна, 12, корп. 17
- •Практичне заняття № 1 Системи числення та формати зображення чисел у еом Завдання
- •Практичне заняття № 2
- •Завдання
- •Додаток 1 Пріоритети та асоціативність операцій
- •Примітка
- •Опис операцій
- •4.Операції зсувів
- •8.Умовний вираз
- •9. Операції та вирази присвоювання
- •10.Складене присвоювання
- •11. Операція „кома” або операція послідовного обчислення
- •Додаток 2
- •Практичне заняття № 3 Вивчення умовних переходів Завдання
- •Список завдань
- •Практичне заняття № 4 Вивчення циклічних обчислювальних процесів Завдання
- •Практичне заняття № 5 Розробка алгоритмів та їх графічне зображення Завдання
- •Практичне заняття № 6 Розрахунок значень числових рядів Завдання
- •Приклад виконання завдання
- •Практичне заняття № 8 Робота з функціями Завдання
- •Приклад виконання завдання
- •Опис алгоритму і програми
- •Практичне заняття № 9 Робота з цілими числами Завдання
- •Додаток
Додаток
Функції визначення цифр заданого цілого числа х
Результати : цифра як ціле число записується у масив z ,починаючи з його кінця ; код цифри як символ записується у масив sz ,починаючи з його кінця .
void define_digit (unsigned int x, unsigned int *z, char*sz)
{ unsigned int a, b;
repeat: a = x / 10;
b = x – a * 10; //цифра
*z-- = b;
*sz-- = b + 48; //код цифри
x = a;
if ( x > 9 ) goto repeat;
*z-- = a;
*sz-- = a + 48;
}
void define_digit1(unsigned int x, unsigned int *z, char*sz)
{
int b;
while ( x >= 10)
{
b = x % 10; //цифра
x = ( x – b ) / 10; *z-- = b;
*sz-- = b + 48; //код цифри
}
*z-- = x;
*sz-- = x + 48;
}
Опис змінних у головній функції :
unsigned int a , w[n] = {0,0,…0}; char sw[n+1] = “ \0”;
Приклад звернення до функції
define_digit (a, w+n-1, sw+n-1);
Наприклад, для a = 1234 , n = 4
w[0] = 1, w[1] = 2 , w[2] = 3 , w[3] = 4 ,
sw = “1234” , sw[0] = ‘1’ (0x0031) , sw[1] = ‘2’ (0x0032) , sw[2] = ‘3’(0x0033) , sw[3] = ‘4’ (0x0034)
Розрахунок значення числа за його цифрами
a = (( w[0]*10 + w[1] ) *10 + w[2] )*10 + w[3]
Визначення кількості цифр числа а для створення відповідних масивів
( n для масиву цифр unsigned int z[n] , m для символьного масиву кодів цифр unsigned char sz[m]
if (a < 100) {n = 2; m = 3;}
else if (a < 1000) {n = 3; m = 4;}
else if (a<10000) {n = 4; m = 5;}
else if (a<100000) {n = 5; m = 6;} //int
else if (a<1000000 {n = 6; m = 7;} //unsigned int
else if (a<10000000 {n = 7; m = 8;}
else if (a<100000000) {n = 8; m = 9;}
else if (a<1000000000) {n = 9; m = 10;} //long
else {n = 10; m = 11;} //unsigned long
Динамічні масиви
unsigned int *z = new unsigned int [n]; //створення
unsigned char *sz = new unsigned char [m];
delete [n] z; delete [m] sz; //видалення