Buscar

Escreva um programa para verificar se uma expressão matemática (em String):

Escreva um programa para verificar se uma expressão matemática (em

String) passada pelo usuário tem os parênteses agrupados de forma

correta, isto é:

a. se o número de parênteses de abertura e fechamento são iguais;

b. se todo parêntese aberto é seguido posteriormente por um

fechamento de parêntese;

c. nenhuma expressão deve conter um parêntese de fechamento

antes de um de abertura.

Ex1: A expressão ((A+B) viola as condições a e b.

Ex2: A expressão A+B) viola as condições a e c.

Ex3: A expressão )A+B( – C viola as condições b e c.

Ex4: A expressão (A+B)) – (C + D violam a condição b e c.

💡 5 Respostas

User badge image

Thiago Viana Prado

o q e issooooo

 

0
Dislike0
User badge image

Andre Smaira

Escreva um programa para verificar se uma expressão matemática (em String):

Escreva um programa para verificar se uma expressão matemática (em

String) passada pelo usuário tem os parênteses agrupados de forma

correta, isto é:

a. se o número de parênteses de abertura e fechamento são iguais;

b. se todo parêntese aberto é seguido posteriormente por um

fechamento de parêntese;

c. nenhuma expressão deve conter um parêntese de fechamento

antes de um de abertura.

Ex1: A expressão ((A+B) viola as condições a e b.

Ex2: A expressão A+B) viola as condições a e c.

Ex3: A expressão )A+B( – C viola as condições b e c.

Ex4: A expressão (A+B)) – (C + D violam a condição b e c.


Para a resolução desta tarefa foram utilizados conhecimentos sobre a linguagem de programação C.


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main (int argc, char** argv)

{

int flaga = 0, flagb = 0, flagc = 0, flagaux = 0;

char* string = (char* ) malloc (sizeof(char));

printf("Digite a expressao: ");

scanf("%[^\n]%*c", string);

int i, j = 0;

for(i = 0; i < strlen(string); i++){

flaga = 0;

if(string[i] == '('){

j++;

flagaux = 1;

}

else if(string[i] == ')'){

if(j == 1){

j--;

flagaux = 0;

}

else if(j <= 0){

flagc = 1;

flagaux = 0;

j--;

}

else{

flagb = 1;

j--;

}

}

}

if(j == 0)

flaga = 1;

if(flagaux)

flagb = 1;

if(!flaga && flagb && flagc)

printf("A expressao %s viola as condicoes a, b e c.", string);

else if(!flaga && flagb)

printf("A expressao %s viola a condicao a e b.", string);

else if(!flaga && flagc)

printf("A expressao %s viola a condicao a e c.", string);

else if(flagb && flagc)

printf("A expressao %s viola a condicao b e c.", string);

else if(!flaga)

printf("A expressao %s viola a condicao a.", string);

else if(flagb)

printf("A expressao %s viola a condicao b.", string);

else if(flagc)

printf("A expressao %s viola a condicao c.", string);

return 0;

}


O programa recebe uma expressão do usuário e verifica se viola alguma das condições dadas no enunciado, caso viole o programa imprime qual(is) dela(s) foi(ram) violada(s).

0
Dislike0
User badge image

Andre Smaira

Para a resolução desta tarefa foram utilizados conhecimentos sobre a linguagem de programação C.


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main (int argc, char** argv)

{

int flaga = 0, flagb = 0, flagc = 0, flagaux = 0;

char* string = (char* ) malloc (sizeof(char));

printf("Digite a expressao: ");

scanf("%[^\n]%*c", string);

int i, j = 0;

for(i = 0; i < strlen(string); i++){

flaga = 0;

if(string[i] == '('){

j++;

flagaux = 1;

}

else if(string[i] == ')'){

if(j == 1){

j--;

flagaux = 0;

}

else if(j <= 0){

flagc = 1;

flagaux = 0;

j--;

}

else{

flagb = 1;

j--;

}

}

}

if(j == 0)

flaga = 1;

if(flagaux)

flagb = 1;

if(!flaga && flagb && flagc)

printf("A expressao %s viola as condicoes a, b e c.", string);

else if(!flaga && flagb)

printf("A expressao %s viola a condicao a e b.", string);

else if(!flaga && flagc)

printf("A expressao %s viola a condicao a e c.", string);

else if(flagb && flagc)

printf("A expressao %s viola a condicao b e c.", string);

else if(!flaga)

printf("A expressao %s viola a condicao a.", string);

else if(flagb)

printf("A expressao %s viola a condicao b.", string);

else if(flagc)

printf("A expressao %s viola a condicao c.", string);

return 0;

}


O programa recebe uma expressão do usuário e verifica se viola alguma das condições dadas no enunciado, caso viole o programa imprime qual(is) dela(s) foi(ram) violada(s).

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais