Logo Passei Direto
Buscar

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.

User badge image
Tamires Xavier

há 9 anos

User badge image
Tamires Xavier

há 9 anos

Respostas

User badge image

Thiago Viana Prado

há 8 anos

o q e issooooo

 

Essa resposta te ajudou?

0
Dislike0
User badge image

Andre Smaira

há 7 anos

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).

Essa resposta te ajudou?

0
Dislike0
User badge image

Andre Smaira

há 7 anos

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).

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina