Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Estruturas Condicionais em Linguagem C, Esquemas de Algoritmos

Este documento aborda o tema de estruturas condicionais em linguagem c, explicando os operadores relacionais e lógicos, o comando if, o comando if-else, a importância dos recuos e a leitura de dados. Além disso, é apresentado um exemplo de resolução de problemas utilizando estas estruturas.

Tipologia: Esquemas

2022

Compartilhado em 07/11/2022

Aldair85
Aldair85 🇧🇷

4.7

(27)

222 documentos

1 / 25

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Estruturas Condicionais
Aula – Tópico 3
Algoritmos e Estruturas de Dados I (DCC/003)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Pré-visualização parcial do texto

Baixe Estruturas Condicionais em Linguagem C e outras Esquemas em PDF para Algoritmos, somente na Docsity!

Estruturas Condicionais

Aula – Tópico 3

Algoritmos e Estruturas de Dados I (DCC/003)

  • (^) Determine as raízes da equação ax^2 + bx + c = 0.

Problema 5

  • (^) O programa p05.c realiza um processamento condicional. Estas instruções serão executadas somente se delta >= 0.

Processamento condicional

  • (^) Para executar um processamento condicional, um programa precisa utilizar o comando if.
  • (^) Todo comando if requer uma condição. O valor de uma condição pode ser verdadeiro ou falso.
  • (^) Em C, não existe um tipo de dados específico para representar valores lógicos (V ou F).
  • (^) Qualquer valor diferente de zero é interpretado como verdadeiro, enquanto zero é falso.

Processamento condicional

  • (^) Os operadores lógicos permitem combinar várias condições em uma única expressão lógica. Operador Significado && Conjunção lógica (“and”) || Disjunção lógica (“or”) ! Negação lógica (“not”) Expressão Valor Lógico ((a/2 == x) && (a > 2)) Falso. ((x <= a) && (a >= 2x)) Verdadeiro. (!(a/3 <= x)) Falso. (a && x) Verdadeiro. ((a – 2x) || (x < a/2)) Falso. int a = 3; float x = 1.5;

Operadores lógicos

  • (^) O operador condicional na linguagem C tem a seguinte sintaxe:
  • (^) Os resultados podem ser de qualquer tipo (int, float, char, double) e mesmo strings.
  • (^) Exemplos: (condição)? resultado-se-condição-verdadeira : resultado-se-condição-falsa (b != 0)? a/b : 0 (peso <= 75)? “ok” : “deve emagrecer”

Operador condicional

  • (^) No programa p05.c, o operador condicional é usado dentro da função printf.

Operador condicional

  • (^) Atenção!
    • (^) Um erro comum em linguagem C é usar o operador de atribuição (=) em vez do operador relacional (==) em condições que testam igualdade. int fator = 3; if (fator == 1) { printf(“O fator e' unitario\n”); } printf(“fator = %d\n”, fator) int fator = 3; if (fator = 1) { printf(“O fator e' unitario\n”); } printf(“fator = %d\n”, fator) Imprime: fator = 3 pois: (fator == 1) é falso! Imprime: O fator e' unitario fator = 1 pois: (fator = 1) é verdadeiro!

Atribuição e teste de igualdade

  • (^) Exemplo:
  • (^) Um conjunto de instruções começa com o símbolo { e termina com o símbolo }. Caso, o conjunto contenha apenas uma instrução, as chaves são opcionais. if (delta >=0) { x1 = (-b + sqrt(delta))/(2a); x2 = (-b – sqrt(delta))/(2a); } else { printf(“Sem raízes reais.”); }

Comando if-else

  • (^) Qualquer instrução pode fazer parte de um conjunto de instruções, inclusive um comando if ou um comando if-else. if (delta >=0) { x1 = (-b + sqrt(delta))/(2a); if (delta == 0) x2 = x1; else x2 = (-b – sqrt(delta))/(2a); } else { printf(“Sem raízes reais.”); }

Comando if-else

Por que não foram usadas as chaves { } neste comando?

  • (^) Exemplo:
  • (^) De quem é o else acima?
    • (^) O compilador sempre associa um else ao “if anterior mais próximo que ainda não possui um else.”
  • (^) Como associar o else à instrução if (nota >= 9)? if (nota >= 9) if (nota_anterior < nota) printf(“Você está melhorando.”); else printf(“Sem estudo é difícil ser aprovado.”);

Recuos não resolvem ambigüidades

  • (^) Exemplo:
  • (^) Neste caso, as chaves, em vez de opcionais, serão obrigatórias, pois apenas os recuos não resolvem. if (nota >= 9) { if (nota_anterior < nota) printf(“Você está melhorando.”); } else printf(“Sem estudo é difícil ser aprovado.”);

A importância dos recuos

  • (^) Nos programas anteriores, os valores das variáveis eram estabelecidos em operações de atribuição. Mas agora, qual é o valor de C?

Leitura de dados

  • (^) Uma outra forma de atribuir valores a variáveis é a leitura de dados. Em C, usa-se a função scanf.
  • (^) Assim como printf, a função scanf pode ter vários parâmetros, sendo o primeiro uma string.
  • (^) No caso da função scanf, esta string deve conter apenas tags, separadas por espaços em branco.
  • (^) Os demais parâmetros da função scanf devem ser endereços de variáveis.

Leitura de dados