DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Лабораторна робота 5

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
Комп’ютерні науки
Кафедра:
АСУ

Інформація про роботу

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Програмно-орієнтовані мови програмування
Варіант:
5

Частина тексту файла (без зображень, графіків і формул):

/ pl.h: #pragma once int check(char **check); double polinom(char *tup,...); main.c #include<stdio.h> #include<conio.h> #include"pl.h" #define n 5 int main(){//головна функція int i; int a; double res,arr[n]; scanf("%d", &a); for(i=0;i<n;i++) scanf("%lf", arr+i); res=polinom("%d %lf %lf %lf %lf %lf", a, arr[0], arr[1], arr[2], arr[3], arr[4]); printf("%lf\n", res); res=polinom("%lf %lf %lf %lf", (double)a, arr[0], arr[1], arr[2]); printf("%lf\n", res); res=polinom("%d %lf %lf %lf", a, arr[0], arr[1], arr[2]); printf("%lf\n", res); getch(); return 0; } //можеш переписувати і викликати функцію в будь-якому порядку з будь-якою кількісттю вхідних данних(на вхід в рядку правда треба описувати якого типу данні типодаєш, кожну змінну описувати,як той самий прінтф чи сканф), функція повинна сприймати double, int i float, але в меневоно вийо, тому хз... pl.c: #pragma once #include "pl.h" #include<stdarg.h>//хрєнь, де лежать функції для роботи зі змінною кількісттю параметрів double polinom(char *tup,...){//функція з якою я найдовше займався сексом(твоє завдання) double res,x;//змінні під результат і х int ch;//зміння для перевірки int arg0;//змінні потипно для цілого, з рухомою комою, і з рухомою комою подвоєної точності float arg1; double arg2; va_list ap;//змінна для роботи va_start(ap, tup);//це треба щоб зловити першу змінну з поданих res=0; ch=check(&tup);//виклик перевірки if(ch==0)//в залежності від того, що перевірка видасть або виходимо за межі функції, або ж використовуємо потрібну змінну для того щоб вивести х return 0; if(ch==1){ arg0=va_arg(ap,int); x=arg0; } if(ch==2){ arg1=va_arg(ap,float); x=arg1; } if(ch==3){ arg2=va_arg(ap,double); x=arg2; } while(1){//безмежний цикл, все аналогічно до попереднього "витягування х" але тут витягуються потрібні шматки поліному ch=check(&tup); if(ch==0) break; if(ch==1){ arg0=va_arg(ap,int); res=res*x+arg0; } if(ch==2){ arg1=va_arg(ap,float); res=res*x+arg1; } if(ch==3){ arg2=va_arg(ap,double); res=res*x+arg2; } } va_end(ap);//звільняється змінна АР return res;//повертається результат } int check(char **check){//функція перевірки вхідних данних(ця хуйня для того, щобвоно парахо під тип функції scanf while(1){//в цьому безмежному циклі воно перебирає шукаючи символ % if(check[0][0]==0)//якщо попало на кінець рядка - повернути нуль return 0; if(check[0][0]=='%')//знайшло відсоток - на вихід break; else check[0]=&check[0][1]; } if(check[0][0]=='%' && check[0][1]=='d'){//що описано то і повертає(для інт 1, для флоат 2, для дабл 3) check[0]=&check[0][2]; return 1; } if(check[0][0]=='%' && check[0][1]=='f'){ check[0]=&check[0][2]; return 2; } if(check[0][0]=='%' && check[0][1]=='l' && check[0][2]=='f'){ check[0]=&check[0][3]; return 3; } return 0; }
Антиботан аватар за замовчуванням

24.04.2014 23:41

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!