Генерація та виведення масиву дійсних чисел. Програма для впорядкування масиву рядків

Содержание

Слайд 2

48-57 ----- 0..9 65-90 ----- A..Z 97-122 ----- a..z 128-159 -----

48-57 ----- 0..9
65-90 ----- A..Z
97-122 ----- a..z
128-159 ----- А..Я
160-175 ----- а..п
224-239

----- р..я
Слайд 3

void main(void) { char **str; // покажчик на масив рядків int

void main(void)
{ char **str; // покажчик на масив рядків
int a,b,nums,numc,

ch;
clrscr();
/* for (a=1;a<240;a++){ if (a%10) cout< "<<(char)a<<" \n";
else getch();}*/ // виведення таблиці символів ср866
cout<<“Введіть кількість рядків "; cin>>nums;
cout<<“Введіть кількість символів в рядку";cin>>numc;
str=(char**) calloc(nums, sizeof(char*));
for(a=0;a randomize();
for(a=0;a do{
ch=random(257);
if ( (ch>64 && ch<91) || (ch>96 && ch<123) ) // генерація символів рядку
{
str[a][b]= ch;
b++;
} //for
} while (b str[a][b]= '\0'; // вставка символу кінця рядку
}
}
Слайд 4

Завдання: Написати програму для обчислення коренів нелінійних рівнянь на заданому проміжку

Завдання:
Написати програму для обчислення коренів нелінійних рівнянь на заданому проміжку

Комп‘ютерний практикум

№ 7

Корені можна обчислити:
методом половинного ділення
методом дотичних (Ньютона)

Слайд 5

На кожному кроці обчислюється значення і перевіряється знак добутку , то

На кожному кроці обчислюється значення

і перевіряється знак добутку

,

то відбувається

, в протилежному випадку

Ці дії повторюються поки

, де ε – наперед задана точність.

Метод половинного ділення

присвоєння

.

Слайд 6

Знаходиться значення функції в крайній точці – f(b); Через знайдену точку

Знаходиться значення функції в крайній точці – f(b);
Через знайдену точку проводимо

дотичну. Знаходимо точку х2.
Алгебраїчно це виглядає наступним чином:

- похідна функції в точці

3. Повторюємо п.2 доти, поки: |delta| > eps.

, ε – додатнє, близьке до нуля число (підбирається).

.

Метод дотичних (Ньютона)

Слайд 7

Слайд 8

Слайд 9

У деяких випадках треба мати аналог функції – змінної, наприклад, в

У деяких випадках треба мати аналог функції – змінної, наприклад, в

залежності від певних умов обчислювати різні функції, або написати функцію інтегрування певного класу функцій.
Тобто, потрібна функціональна змінна, яка реалізується за допомогою покажчика на функцію.
Якщо є кілька функцій певної структури, наприклад:
double fun1 (double, int);
...
double fun3 (double, int);
то покажчик на такі функції матиме вигляд:
double (*fpr) (double, int);
Тут дужки (*fpr) потрібні, бо модифікатор ( ) має перевагу над модифікатором *. Тому:
double *fpr (double, int); означатиме функцію,

яка передає покажчик на double.

Слайд 10

За допомогою покажчиків на функцію, можна створювати масиви функцій, використовувати їх

За допомогою покажчиків на функцію, можна створювати масиви функцій, використовувати їх

як параметри інших функцій.
Наприклад, для числового інтегрування зазначених вище функцій можна створити універсальну функцію, яка має параметрами:
Межі інтегрування;
Точність;
Функцію, для якої обчислюється інтеграл.

double integrate (double (*fpr)(double), double lowbow, double highbow, double eps);

Слайд 11

. ………………………………………………………….. // функція знаходження корня float kor(float (*fpr)(float),float x, float

.

…………………………………………………………..
// функція знаходження корня
float kor(float (*fpr)(float),float x, float y,

float eps);
// функція знаходження значення в точці х
float fun1 (float x) {return (cos(2.0/x)-2*sin(1.0/x)+1.0/x);}
// функція знаходження значення в точці х
float fun2 (float x) {return (sin(log(x))-cos(log(x))+2*log(x));}
…………………………………………………….

float kor ( float (*fpr)(float), float l, float h, float eps)
{ float x;
while (fabs(h-l)>eps)
{ x=(l+h)/2.0;
( (*fpr)(l) * (*fpr)(x) > 0 ) ? (l=x) : (h=x);
}
return x;
}