Aula01_EstruturaDados_C | Ciclones Tropicais | Triângulo
SalvarSalvar Aula01_EstruturaDados_C para ler mais tarde
397 visualizações12 páginas
Lógica de Programação e AlgorítmosPré-calculo
FICA – FACULDADES INTEGRADAS CAMÕES
DISCIPLINA: ADS – Estrutura de Dados - C.
PROFESSOR: MS.c. Euclides Peres Farias Junior
AULA 01 – Revisão da Programação em C .
1 TOMADA DE DECISÃO (CONDICIONAIS)
Apresentamos nesta unidade aula os recursos relacionados ao processo de tomadas de decisão simples, decisão composta, operadores relacionais, operadores lógicos e arquivo de cabeçalho ISO646.
São utilizados os comandos:
∑ if
∑ else
São utilizados os operadores relacionais:
∑ igual a (==)
∑ diferente de (!=)
∑ maior que (>)
∑ menor que (<)
∑ maior ou igual a (<=)
∑ maior ou igual a (>=)
∑ menor ou igual a (>=)
São utilizados os operadores lógicos:
∑ conjunção (and ou &&)
∑ disjunção (or ou ||)
∑ negação (not ou !)
COMPLIANDO O PROGRAMA EM C:
Para compilar um programa em C, você pode utilizar programas de compilação na plataforma Microsoft tal como o DevC++, Visual C, Borland Turbo C. Para os ambientes Linux/Unix deve-se utilizar os programas cc, gcc g++ o qual a sintaxe é a seguinte:
gpp adicao.c -o adicao
g++ adicao.c -o adicao
Para poder trabalhar com uma condicional, deve-se utilizar uma nova instrução denominada if, que tem por finalidade tomar uma decisão e efetuar um desvio no processamento do programa, dependendo, é claro, da condição atribuída ser VERDADEIRA ou FALSA.
Sendo a condição VERDADEIRA, será executada a instrução que estiver escrita após a instrução if. Caso seja necessário executar mais de uma instrução para uma condição verdadeira, elas devem estar escritas dentro de um bloco. Lembrando que um bloco é definido com os símbolos de chaves "{" e "}".
Sendo a condição FALSA, executam-se as instruções que estejam após a instrução considerada verdadeira, ou as instruções após o bloco considerado verdadeiro. Desta forma a instrução if pode ser escrita da seguinte forma:
if <(condição)>
Caso exista a necessidade de processar mais de uma instrução para uma mesma condição verdadeira, elas devem estar inseridas em um bloco, como indicado em seguida.
<(condição)>
<instrução1 para condição verdadeira>;
<instrução2 para condição verdadeira>;
<instrução3 para condição verdadeira>;
<instruçãoN para condição verdadeira>;
Exemplo 1: Programa Adição de Números
Escrever um programa em linguagem C que faça a leitura de dois valores numéricos, efetuar
a adição e apresentar o seu resultado caso o valor somado seja maior que 10.
1. Conhecer dois valores incógnitos (estabelecer variáveis A e B);
2. Efetuar a soma dos valores incógnitos A e B, implicando o valor da soma na variável X;
3. Apresentar o valor da soma contido na variável X.
//Adiciona Números
printf("Informe um valor para a variavel A
: "); scanf("%d", &A);
printf("Informe um valor para a variavel B
: "); scanf("%d", &B);
if (X > 10) //Condicional
printf("\nO valor da variavel X equivale
%d", X);
Neste programa, após as definições dos tipos de variáveis, é solicitada a leitura dos valores para as variáveis A e B. Após, esses valores são implicados na variável X, a qual passa a possuir o resultado da adição dos dois valores. Após calcular a soma e atribuir o resultado na variável X, o programa verifica uma condição com a instrução if que permite imprimir o resultado da adição caso seja MAIOR QUE 10. Caso contrário é encerrado o programa sem apresentar o referido resultado, uma vez que a condição é falsa.
Exemplo 2: Programa de Ordenação de Números
Escrever um programa em C que leia dois valores inteiros e independente da ordem em que foram entrados, eles devem ser impressos na ordem crescente, ou seja, se forem fornecidos 5 e 3, respectivamente, devem ser apresentados 3 e 5.
O programa proposto necessita verificar se um dos valores é maior que o outro. Se for constatado a condição verdadeira, o programa deve efetuar a troca dos valores entre as duas variáveis, para então apresentar os valores ordenados.
1. Conhecer dois valores inteiros e incógnitos (estabelecer variáveis A e B);
2. Verificar se o valor de A é maior que o valor de B;
a) Se for verdadeiro, efetuar a troca (*) de valores entre as variáveis;
b) Se for falso, pedir para executar o que está estabelecido no passo 3;
3. Apresentar os valores das duas variáveis.
(*) Para efetuar a troca, utilizar uma terceira variável, no caso X, por exemplo de forma que X seja igual ao valor de A, liberando A para receber o valor de B e em seguida B estar livre para receber o valor que está em X, que anteriormente era o valor de A.
//Ordenação com condicional
printf("\nOs valores ordenados sao
: %d e %d", A, B);
3 DECISÃO COMPOSTA
Agora que vimos como usar a instrução if, podemos aprimorar nossos conhecimentos e
conhecer a instrução if
estiver posicionada entre as instruções if e else. Desta forma, caso a condição for FALSA, será executada a instrução que estiver posicionada logo após a instrução else.
Sendo a condição VERDADEIRA, será executada a instrução que
Caso seja necessário considerar mais de uma instrução para as condições VERDADEIRA ou FALSA, usam-se blocos delimitados por chaves, onde a sintaxe do código é a seguinte:
<instrução1 para condição falsa>;
<instrução2 para condição falsa>;
Exemplo 3: Programa Faixa Numérica
Escrever um programa em C que faça a leitura de dois valores numéricos e efetuar a adição. Caso o valor somado seja maior ou igual a 10, deve ser apresentado somando a ele mais 5. Caso o valor somado não seja maior ou igual a 10, deve ser apresentado o valor subtraindo de 7.
1. Conhecer dois valores (variáveis A e B);
2. Efetuar a soma dos valores A e B e implicar o valor da soma em X;
3. Verificar se X é maior ou igual 10; caso sim, mostre X + 5, senão mostre X – 7.
//Adiciona Números Versão 2
printf("\nO resultado equivale a
(X > = 10)
printf("%d", X + 5);
printf("%d", X -7);
Após a definição dos tipos de variáveis é solicitada a leitura dos valores para as variáveis A e B, depois esses valores são implicados na variável X, a qual possui o resultado da adição dos dois valores. Em seguida é apresentada a mensagem O resultado equivale a:, que não posiciona o cursor na próxima linha. Desta forma, qualquer que seja o resultado avaliado pela condição, ele será apresentado do lado direto da mensagem. Depois é executada a linha de programa com a instrução if(X >= 10), a qual questiona a condição do programa. Se a condição for verdadeira, é apresentado o valor de X somado com mais 5. Não sendo a condição verdadeira, o programa apresenta o valor de X subtraindo 7.
Problema: Média Escolar
Escrever um programa em linguagem C que faça a leitura de quatro valores numéricos referentes a quatro notas bimestrais de um aluno, efetuar o cálculo da média e apresentá-la junto com uma das seguintes mensagens: caso o valor da média seja maior ou igual a 5, apresentar "Aluno aprovado"; caso contrário "Aluno Reprovado".
1. Entrar quatro valores para as noas (estabelecer variáveis N1, N2, N3 e N4);
2. Calcular a média: MD = ((N1 + N2 + N3 + N4) / 4);
3. Verificar se o valor da média é maior ou igual a 5, caso seja a média verdadeira, apresentar a mensagem "Aluno aprovado"; senão, apresentar a mensagem "Aluno reprovado";
4. Apresentar também junto comm cada mensagem o valor da média obtida.
//Calcular Média Escolar
float N1, N2, N3, N4, MD;
printf("\nEntre com a Nota 1 …: "); scanf("%f", &N1);
printf("\nEntre com a Nota 2 …: "); scanf("%f", &N2);
printf("\nEntre com a Nota 3 …: "); scanf("%f", &N3);
printf("\nEntre com a Nota 4 …: "); scanf("%f", &N4);
MD = ((N1 + N2 + N3 + N4)/4);
if (MD >= 5)
printf("\nAluno aprovado com media = ");
printf("\nAluno reprovado com media = ");
printf("%5.2f\n", MD);
Existem ocasiões em que é necessário trabalhar com o relacionamento de duas ou mais condições ao mesmo tempo na mesma instrução if, efetuando testes múltiplos. É neste caso em que se faz necessário a utilização de Operadores Lógicos.
Em se tratando da linguagem de programação C, não se usa valores lógicos, tais como Verdadeiro ou Falso, porque esses dois valores não existem. Para uma expressão condicional ou no uso de operadores lógicos, é considerado como valor Verdadeiro o resultada da expressão que for igual a 1(um), ou seja não zero. Então, o valor 0(zero), representa como condição de Falso.
Desta forma os operadores lógicos são três: E, OU e NÃO, observe que em alguns casos os operadores lógicos evitas a utilização de muitas instruções if encadeadas.
- Operadores Lógico de CONJUNÇÃO [ && = e ]
O operador && é utilizado quando dois ou mais relacionamentos lógicos de uma
determinada condição necessitam ser verdadeiros. Em seguida é apresentada a tabela verdade para esse tipo de operador:
0(falsa)
1(verdadeira)
O operador && faz com que somente seja executada uma determinada operação se todas as condições mencionadas forem simultaneamente verdadeiras, gerando um resultado lógico verdadeiro. A seguir, é apresentado um exemplo com a utilização do operador lógico &&.
Problema: Desenvolver em linguagem C um programa que aceite valores numéricos inteiros entre 0(zero) e 9(nove). Se o valor estiver dentro da faixa, o programa deve apresentar a mensagem "valor válido". Caso esteja fora da faixa, o programa deve apresentar a mensagem "valor inválido".
1. Entrar um valor numérico inteiro (usar a variável NUMERO);
2. Verificar por meio de condição se o valor fornecido está na faixa de 0(zero) a 9(nova);
3. Caso o valor fornecido esteja dentro da faixa, apresentar a mensagem "valor válido", caso contrário, apresentar a mensagem "valor inválido".
/*Operador AND (E) - && */
printf("\n Digite um numero entre 0 e 9
if (NUMERO >= 0 && NUMERO <= 9)
printf("O valor digitado é VÁLIDO!);
printf("Valor digitado INVÁLIDO!");
- Operadores Lógico de DISJUNÇÃO [ || = ou]
O operador do tipo || é utilizado quando pelo menos um dos relacionamentos lógicos
(quando houver mais de um relacionamento) de uma condição necessita ser verdadeiro. Em seguida é apresentada a tabela verdade para esse tipo de operador:
O operador || faz com que seja executada uma determinada operação, se pelo menos uma das condições mencionadas gerar um resultado lógico verdadeiro.
Problema: Escrever um programa em C que leia um valor numérico inteiro referente aos códigos, 1, 2 e 3. Qualquer outro valor deve apresentar a mensagem "código inválid". Se o valor estiver correto, apresentar o valor do código por extenso".
1. Digitar um valor numérico inteiro (usar a variável CODIGO);
2. Verificar se o código fornecido é igual a 1, igual a 2 ou igual a 3 a mensagem "código inválido";
3. Ao ser verificado o código e constatado que é um valor válido, o programa deve verificar cada código em separado para determinar seu valor por extenso.
Caso não seja, apresentar
/*Operador OR (OU) ||*/
printf("\n Digite o código de acesso …: ");
scanf("%d", &CODIGO);
if (CODIGO == 1 || CODIGO == 2 || CODIGO == 3)
printf("Um\n");
if (CODIGO == 2 )
printf("Dois\n");
if (CODIGO == 3 )
printf("Três\n");
printf("O código digitado é INVÁLIDO!");
4.3 - Operadores Lógico de NEGAÇÃO [ ! = não ]
O operador do tipo ! é utilizado quando se necessita estabelecer que uma determinada condição deve não ser verdadeira ou deve não ser falsa. O operador ! se caracteriza por inverter o estado lógico de uma condição.
CONDIÇÃO RESULTADO LÓGICO
0(faso)
Problema 1: Escrever um programa em C que leira um valor numérico inteiro que não seja negativo. Qualquer outro valor deve apresentar a mensagem "valor inválido". Se o valor estiver correto, apresentar a mensagem "você informou um valor válido" e colocar junto com a mensagem o valor fornecido.
1. Digitar um valor numérico inteiro (usar a variável VALOR);
2. Verificar se o valor fornecido não é maior ou igual a 0. Se o valor não for maior ou igual a 0 (no caso valores negativos), apresentar a mensagem "valor inválido";
3. Se o valor fornecido for positivo, apresentar a mensagem "você informou um valor válido" e apresentar também o valor válido fornecido.
/* Operador NOT (NÃO) */
#includes <stdio.h>
printf("\n Digite um valor inteiro e positivo
if (!(VALOR >= 0))
printf("O valor digitado é INVÁLIDO!");
printf("O valor digitado é VÁLIDO, você digitou
%d\n", VALOR);
Problema 2: Escrever um programa em C que leia três valores referentes às medidas dos lados de um triângulo, considerando lados como A, B e C. Verificar se os lados fornecidos formam realmente um triângulo. Se esta condição for verdadeira, deve ser indicado qual o tipo de triangulo que formou:
ISÓSCELES: Possui dois lados iguais e um diferente; A == B ou A == C ou B == C;
ESCALENO: Quando possui todos os lados diferentes; A != B e B != C;
EQUILÁTERO: Quando possui todos os lados iguais; A == B e se B == C.
1. Ler três valores para os lados de um triangulo: A, B e C;
2. Verificar se cada lado é menor que a soma dos outros dois lados:
a) Se sim, saber se A == B e se B == C, sendo verdade o triangulo é EQUILÁTERO;
b) Se não, verificar se ISÓSCELES;
c) Caso contrário o triangulo é ESCALENO.
ou A ==
B == C, sendo verdade o triangulo é
3. Caso os lados fornecidos não caracterizem um triângulo, avisar a ocorrência.
/* Checar o tipo de Triangulo */
printf("\n Informe o Lado A
printf("\n Informe o Lado B
printf("\n Informe o Lado C
//Esta condição é que valida se é ou não um triangulo.
if (A < B + C && B <
: "); scanf("%f", &A);
: "); scanf("%f", &B);
: "); scanf("%f", &C);
C && C < A + B)
//A partir daqui, valida o tipo do Triangulo
printf("\n O triangulo é EQUILATERO\n");
if (A == B || A == C || C == B)
printf("\n O triangulo é ISOSCELES\n");
printf("\n O triangulo é ESCALENO\n");
printf("\n Atencao, os valores fornecidos nao formam um triangulo!\n");
Desenvolva os algoritmos e a codificação em linguagem C dos programas abaixo, como sugestão, utilize um padrão para o nome dos arquivos, coloque como EXERC06a, EXERC06b até
EXERC06f.
a) Ler três valores inteiros (representados pelas variáveis A, B e C). O programa deve apresentar os valores dispostos em ordem crescentes;
b) Efetuar a leitura de três valores (variáveis A, B e C) para calcular a equação do segundo grau se o valor da variável A for diferente de zero. Lembrando que só existirá o cálculo das raízes se o valor de delta for diferente de 0. É necessário considerar também o fato de o valor de delta ser igual a zero. Se isto ocorrer, existirá apenas o cálculo de uma raiz. Obs.: Utilize a biblioteca #include <math.h>;
c) Ler quatro valores referentes a quatro notas escolares de um aluno e mostrar uma mensagem informando que o aluno foi aprovado se o valor da média for maior ou igual a 7. Se o aluno tirou notas > 7 e >= 4 a mensagem é "Recuperação", abaixo de 4 a mensagem deverá ser reprovado, apresentar uma mensagem informando esta condição. Junto com as mensagens apresentar o valor da média do aluno, caso o aluno ficar para recuperação, deverá informar a nota que o aluno deverá tirar para ser aprovado, segue a Fórmula:
MEDIA = ((A + B + C + D)/4);
NOTA_final = (10 – media)
CONDIÇÃO PARA NOTA FINAL: Se NOTA_final >= 6,0 então ALUNO APROVADO; senão ALUNO REPROVADO. OBSERVAÇÃO: Formatar a saída dos valores em casas decimais da seguinte forma: 99,99(dois dígitos numerais e dois dígitos após a vírgula).
d) Ler dois valores numéricos inteiros ou reais e exibir a diferença do maior para o menor;
e) Um ciclones tropical consiste em uma tempestade muito violenta que, sob determinadas condições, adquire um movimento de rotação em torno de uma região de baixa pressão atmosférica. Um ciclone pode atingir um diâmetro de até 500 km. Furacões são os mais violentos desses ciclones e chegam a produzir ventos de até 320 km/h. Na tabela abaixo, são apresentados alguns dados relativos à classificação dos furacões segundo a escala Saffir- Simpson:
maior que 249
Problema: Escreva um programa que leia a velocidade do vento aferida durante uma tempestade e
apresente ao usuário a classificação do furacão caso a tempestade possa ser classificada como tal.
f) Faça um programa em "C" que lê dois valores e imprime: - se o primeiro valor for menor que o segundo, a lista de valores do primeiro até o segundo; - se o primeiro valor for menor que o segundo a lista de valores do segundo até o primeiro em ordem decrescente; - se ambos forem iguais a mensagem "valores iguais".
g) Fazer um programa em C que simule uma calculadora com os operadores +(somar), - (diminuir), /(dividir) e *(multiplicar). Mostrando o resultado da operação com a opção escolhida.
h) Uma empresa concederá um aumento de salário aos seus funcionários, variável de acordo com o cargo, conforme a tabela abaixo. Faça um programa em C que leia o salário e o cargo de um funcionário e calcule o novo salário. Se o cargo do funcionário não estiver na tabela, ele deverá, então, receber 40% de aumento. Mostre o nome do funcionário, o salário antigo, o novo salário e a diferença.
i) O departamento que controla o índice de poluição do meio ambiente mantém 3 grupos de indústrias que são altamente poluentes do meio ambiente. O índice de poluição aceitável varia de 0,05 até 0,25. Se o índice sobe para 0,3 as indústrias do 1o grupo são intimadas a suspenderem suas atividades, se o índice cresce para 0,4 as do 1o e 2o grupo são intimadas a suspenderem suas atividades e se o índice atingir 0,5 todos os 3 grupos devem ser notificados a paralisarem suas atividades. Escrever um algoritmo que lê o índice de poluição medido e emite a notificação adequada aos diferentes grupos de empresas.
j) Construa um programa em QUALQUER EM C utilizando OPERADORES LÓGICOS de acordo com sua criatividade, porém o programa deverá conter DECISÕES COMPOSTAS e utilizar TODOS OS OPERADORES LÓGICOS (&&, || e !).