You are on page 1of 14

Questo 1 ) REATOR

#include <stdio.h> #include <stdlib.h> #include <process.h> #include <signal.h> #include <time.h>

void ReatorOff(void); void ReatorSafe(void); void Alarme3(void); void Alarme2(void); void Alarme1(void); //Declarao de funes void

float TempRead(void);

//Declarao de funo float

int now,temp,a=0,b=0,c=0,d=1,e=1; //Declarando variveis inteiras

float sensor; //Declarao de varivel float

int main(int argc, char *argv[]) { _beginthread(Alarme3,0,NULL); _beginthread(Alarme2,0,NULL); _beginthread(Alarme1,0,NULL); _beginthread(ReatorSafe,0,NULL); // Iniciando as funes como thread

_beginthread(ReatorOff,0,NULL); // para trabahar todas ao mesmo tempo.

printf("TEMPERATURA:\n\n"); sleep(2000); // Delay para comear a mostrar a temperatura // inicial do reator.

while(1){ if(a=1){ sleep(3000); //Delay caso algum alarme toque, pra //o programa ter tempo de processar a=0; } sensor = TempRead(); //Sensor recebendo um valor de //temperatura. printf("\n\n%f\n\n", sensor); //Mostrando a temperatura. sleep(3000);//Delay entre uma amostra e outra. //a ao.

} }

float TempRead(void){ srand(time(NULL)); // Funo que representa um sensor temp = rand()%100; // medindo temperatura. return temp; }

void Alarme3(void){ //Thread do alarme 3 rodando constantemente

while(1){ if(e==1){//condio pra no repitir //o alarme e parando a aplicao if (temp >= 80){ printf("ALARME 3 ATIVADO\n\n"); a=1; c=1; e=0; sleep(200);

} } } } void Alarme2(void){ //Thread do alarme 2 rodando constantemente while(1){ /*condio pra no repitir*/if(d==1){ /*o alarme e parando a aplicao*/if (temp < 80 && temp >= 60){ printf("ALARME 2 ATIVADO\n\n"); a=1; b=1; d=0; sleep(700); } } } }

void Alarme1(void){ // Alarme 1 Rodando constantemente esperando sua condio while(1){ if (temp < 60 && temp >= 40){ printf("ALARME 1 ATIVADO\n\n"); a=1; sleep(2000); printf("Operador Cuidado!! O reator esta esquentando\n\n"); system("PAUSE"); printf("\n\n"); } } }

void ReatorOff(void){ while(1){ // Ao a ser tomada caso ative o alarme 3 if(c==1){ // Condio pra fazer isso uma vez printf("Desligou Geral pra nao explodir\n\n"); e=0; c=0; system("PAUSE"); printf("\n\n"); } } }

void ReatorSafe(void){ while(1){ // Ao a ser tomada caso ative o alarme 2

if(b==1){ // Condio pra fazer isso uma vez printf("Sistema de resfriamento ligado\n\n"); d=0; b=0; system("PAUSE"); printf("\n\n"); } }}

Questo 2 )
#include <stdio.h> #include <stdlib.h> #include <process.h> #include <signal.h> #include <time.h> #define a 97 #define b 98 int bot;

void botao(void); void sensorluz(void); void sensorfim(void); //Declarando as Funes int tempo, sensorl=0, sensorf=0, c=0; int main(int argc, char *argv[]) {

_beginthread(botao,0,NULL);//Comeando a thread que espera o boto p\ iniciar. _beginthread(sensorluz,0,NULL);//Comeando a thread do sensor de luz

_beginthread(sensorfim,0,NULL);//Comeando a thread do sensor do fim de p.

printf("\nAperte o botao 'a' para iniciar\n"); while(1){ if(bot == a){ //Condio para ligar o rob if(time(NULL) == 90 + tempo){//Condio de termino do round printf("\nRound Terminou\n"); /*"bot" se torna b pausa aplico*/ bot == b; system("PAUSE"); return 0; }else{

if(c == 5) sensorl=1; if(c == 12) /*Simulao de um rob em movimento*/ if(c == 21) sensorl=1; if(c == 34) sensorl=1; if(c == 40) sensorl=1; sensorl=1;

sleep(2000); printf("\nRobo em funcionamento\n"); c++; }

} } system("PAUSE"); return 0; } void botao(void){ //Thread que espera a tecla "a" para iniciar o programa while(1){ bot = getch(); tempo = time(NULL);//Guarda o momento que o rob foi ligado } }

void sensorfim(void){ while(1){ if(sensorl == 1){//Simulando que o sensor de luz acionou printf("\nFim de percursso...\n"); sleep(1500); sensorl = 0; sensorf = 1; } }}

void sensorluz(void){ while(1){ if(sensorf == 1){//Simulando que o sensor de luz acionou printf("\nMotores invertidos\n"); sensorf = 0; }}}

Questo 3 A) CALCULADORA
#include <stdio.h> #include <stdlib.h> #include <process.h> int main(int argc, char *argv[]) { printf("\nVamos fazer algumas operacoes matematicas\n");

//Numero 1, no segundo argumento, representa uma soma pra o outro progrma _spawnl(P_WAIT, "soma.exe", "soma.exe", "1", "6", "3", NULL); printf("\n"); //Numero 2, no segundo argumento, representa uma subtrao pra o outro progrma _spawnl(P_WAIT, "soma.exe", "soma.exe", "2", "6", "3", NULL); printf("\n"); //Numero 3, no segundo argumento, representa uma subtrao pra o outro progrma _spawnl(P_WAIT, "soma.exe", "soma.exe", "3", "6", "3", NULL); printf("\n"); //Numero 4, no segundo argumento, representa uma diviso pra o outro progrma _spawnl(P_WAIT, "soma.exe", "soma.exe", "4", "6", "3", NULL); printf("\n"); system("PAUSE"); return 0; }

B) SOMA #include <stdio.h> #include <stdlib.h> #include <process.h> int main(int argc, char *argv[]) { int n1,n2,p; int res; p = atoi(argv[1]); //Transformando os "chars" recebidos em numeros inteiros n1 = atoi(argv[2]);//Alocando eles em cada variavel n2 = atoi(argv[3]); printf("\nVALOR 1: %d\n",n1); printf("\nVALOR 2: %d\n",n2); if(p == 1){ // SOMA printf("\nRealizando uma soma\n"); res = (n1+n2); printf("\nResoposta da soma: %d\n\n", res); } if(p == 2){ // SUBTRAO printf("\nRealizando uma subtracao\n"); res = (n1-n2); printf("\nResoposta da subtracao: %d\n\n", res); } if(p == 3){ // MULTIPLICAO printf("\nRealizando uma multiplicacao\n"); res = (n1*n2); printf("\nResoposta da multiplicacao: %d\n\n", res);

} if(p == 4){ // DIVISO printf("\nRealizando uma divisao\n"); res = (n1/n2); printf("\nResoposta da divisao: %d\n\n", res); }

system("\nPAUSE\n"); return 0; }

Questo 4) A)CICLOS
#include <stdio.h> #include <stdlib.h> #include <process.h> int main(int argc, char *argv[]) { int b; b = atoi(argv[1]); //Recebendo o numero do ciclo e alocando em "b" printf("\nAcima\n"); printf("\nDireita\n"); //Represento de um cilclo printf("\nEsquerda\n"); printf("\nO Clico %d esta completo\n",b); //Termino do cilclo system("PAUSE"); return 0; }

B)SPAWN
#include <stdio.h> #include <stdlib.h> #include <process.h>

int main(int argc, char *argv[]) { // 10 cilcos, variando NOWAIT e WAIT sendo acionados em outro processo spawnl(P_WAIT, "Ciclos.exe","Ciclos.exe","1",NULL);

spawnl(P_NOWAIT, "Ciclos.exe","Ciclos.exe","2",NULL);

spawnl(P_WAIT, "Ciclos.exe","Ciclos.exe","3",NULL); spawnl(P_WAIT, "Ciclos.exe","Ciclos.exe","4",NULL); spawnl(P_NOWAIT, "Ciclos.exe","Ciclos.exe","5",NULL); spawnl(P_WAIT, "Ciclos.exe","Ciclos.exe","6",NULL); spawnl(P_WAIT, "Ciclos.exe","Ciclos.exe","7",NULL); spawnl(P_NOWAIT, "Ciclos.exe","Ciclos.exe","8",NULL); spawnl(P_WAIT, "Ciclos.exe","Ciclos.exe","9",NULL); spawnl(P_NOWAIT, "Ciclos.exe","Ciclos.exe","10",NULL); system("PAUSE"); return 0; }

QUESTO 5) A)CICLOS

#include <stdio.h> #include <stdlib.h> #include <process.h>

int main(int argc, char *argv[]) { int b; b = atoi(argv[1]); //Recebendo o numero do ciclo e alocando em "b" printf("\nAcima\n"); printf("\nDireita\n"); //Represento de um cilclo printf("\nEsquerda\n"); printf("\nO Clico %d esta completo\n",b); //Termino do cilclo system("PAUSE"); return 0; }

B) MOTOR
#include <stdio.h> #include <stdlib.h> #include <process.h> int main(int argc, char *argv[]) { printf("\nMotor 1 ATIVADO\n"); //Motor 1 sendo Ativado por 5 cilcos _spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","1",NULL); _spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","2",NULL);

_spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","3",NULL); _spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","4",NULL); _spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","5",NULL); system("PAUSE"); return 0; }

C) SPAWN
#include <stdio.h> #include <stdlib.h> #include <process.h> #include <time.h> using namespace std; int main(int argc, char *argv[]) { //Iniciando Motor 1 e esperando 5 cilclos dele para continuar _spawnl(P_WAIT, "Spawn2.exe","Spawn2.exe","1",NULL); // Aps 5 cilcos do Motor2, esse processo retorna e finaliza toda aplicao printf("\nO Sensor foi ativado\n"); system("PAUSE"); return 0; } D) SPAWN 2 #include <stdio.h> #include <stdlib.h> #include <process.h>

using namespace std; int main(int argc, char *argv[]) { //Iniciando Motor 1 e esperando 5 cilclos dele para continuar _spawnl(P_WAIT, "Motor1.exe","Motor1.exe","1",NULL); //Motor 2 Sendo ativado aps 5 cilcos do Motor 1 printf("\nMOTOR 2 ATIVADO\n"); //Motor 2 sendo ativado por 5 ciclos por outro processo _spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","1",NULL); _spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","2",NULL); _spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","3",NULL); _spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","4",NULL); _spawnl(P_WAIT, "Ciclos2.exe","Ciclos2.exe","5",NULL); system("PAUSE"); return 0; }

You might also like