algoritmos - unesp: câmpus de guaratinguetá · ‐dada a equação de 2º grau ... saída deve...
TRANSCRIPT
Algoritmos e a Linguagem C | Introdução à Computação 1 de 312014 © MdaS
AlgoritmosAlgoritmosAlgoritmosAlgoritmos
� Para encontrar a raiz de uma equação quadrática, são necessários alguns passos detalhados:
‐ Dada a equação de 2º grau
‐ Subtraia c em ambos os lados
‐ Multiplique ambos os lados por 4a
‐ Aplique a propriedade distributiva
‐ Some ambos os lados por b²
‐ Aplique o TQP no lado esquerdo
‐ Radicie ambos os lados
‐ Subtraia b em ambos os lados
‐ Divida 2a em ambos os lados
Algoritmos e a Linguagem C | Introdução à Computação 2 de 312014 © MdaS
AlgoritmosAlgoritmosAlgoritmosAlgoritmos
� Os passos necessitam ser explicitamente detalhados para que a prova seja concretizada e bem compreendida
� Caso falte algum detalhe na demonstração, o resultado final pode ser comprometido� Tente ocultar um destes detalhes da demonstração e veja se conseguirá obter o mesmo resultado...
Algoritmos e a Linguagem C | Introdução à Computação 3 de 312014 © MdaS
AlgoritmosAlgoritmosAlgoritmosAlgoritmos
� Algoritmos são conjuntos finitos de instruções que obedecem a uma ordem sequencial que, a partir de um conjunto de dados de entrada, produzem um resultado específico
� Características� Finitude
� Exatidão
� Determinação de entradas e saídas
� Efetividade
Algoritmos e a Linguagem C | Introdução à Computação 4 de 312014 © MdaS
AlgoritmosAlgoritmosAlgoritmosAlgoritmos
� FinitudeFinitudeFinitudeFinitude – Um algoritmo deve ter:� Terminar após um nnnnúúúúmero finito de passosmero finito de passosmero finito de passosmero finito de passos
� Terminar após uma quantidade finita de tempoquantidade finita de tempoquantidade finita de tempoquantidade finita de tempo
� Deve ser executado com uma quantidade finita de recursosquantidade finita de recursosquantidade finita de recursosquantidade finita de recursos
Algoritmos e a Linguagem C | Introdução à Computação 5 de 312014 © MdaS
AlgoritmosAlgoritmosAlgoritmosAlgoritmos
� ExatidãoExatidãoExatidãoExatidão – Os passos do algoritmo devem ser:� Definidos com precisão
� A sequência dos passos deve ser determinada de forma clara
� Não podem admitir ambiguidade
Corinthianos Torcedores botaram fogo no depósito que abalou as estruturas do
estádio.
Não foi o depósito que abalou as estruturas do estádio,
mas o fato de terem colocado fogo nele.
Algoritmos e a Linguagem C | Introdução à Computação 6 de 312014 © MdaS
AlgoritmosAlgoritmosAlgoritmosAlgoritmos
� EntradasEntradasEntradasEntradas:� Um algoritmo deve operar sobre um ou mais valores externos
� Os valores correspondem aos dados necessários para iniciar a execução do algoritmo
� Em alguns casos, são parte integrante do algoritmo
� SaSaSaSaíííídasdasdasdas: � Um algoritmo deve produzir uma informação
� Saída deve ser produzida até a execução da última instrução do algoritmo, com base na entrada fornecida
Algoritmos e a Linguagem C | Introdução à Computação 7 de 312014 © MdaS
AlgoritmosAlgoritmosAlgoritmosAlgoritmos
� EfetividadeEfetividadeEfetividadeEfetividade� Deve cumprir a tarefa a ser realizada
� As instruções devem ser� Simples
� Suficientes
� Executáveis
Algoritmos e a Linguagem C | Introdução à Computação 8 de 312014 © MdaS
A Linguagem CA Linguagem CA Linguagem CA Linguagem C
� C, como toda linguagem de programação, necessita de um ambiente para que o código seja desenvolvido
� É uma das linguagens mais utilizadas, devido à:� Eficiência
� Uso extensivo de funções
� Originou várias outras linguagens de programação
� Todo arquivo a ser compilado deve possuir aextensão (.c)� Arquivo-texto que deve seguir a sintaxe de modo correto
� O produto final é um arquivo executável (.exe)
Algoritmos e a Linguagem C | Introdução à Computação 9 de 312014 © MdaS
Principais ElementosPrincipais ElementosPrincipais ElementosPrincipais Elementos
� Em um programa em C, é necessário que haja a chamada de as bibliotecas que contém funções utilizadas pelo compilador:
� É precedida pela expressão#include e entre os sinais <>
#include <stdio.h>
#include <stdlib.h>
Uso do cursor em telaconio.h
Uso de cadeias de caracteresstring.h
Uso de caracteresctype.h
Uso de dados em data e horatime.h
Funções matemáticasmath.h
Alocação de memória e comandos do sistemastdlib.h
Entrada e saída de dadosstdio.h
FuncionalidadeFuncionalidadeFuncionalidadeFuncionalidadeBibliotecaBibliotecaBibliotecaBiblioteca
Algoritmos e a Linguagem C | Introdução à Computação 10 de 312014 © MdaS
A funA funA funA funçççção ão ão ão main()
� Em C, alguns elementos são fundamentais para o seu funcionamento, assim como a estrutura do algoritmo
� Um programa em C é um conjunto de blocos de instruções ou funções determinadas pelo usuário...� ... porém, TODOS os programas em C possui a função int main()
� Cada função, logo após o seu cabeçalho, deve possuir todos os seus comandos entre chaves {}
int main()
{
//INSTRUÇÕES
}
Algoritmos e a Linguagem C | Introdução à Computação 11 de 312014 © MdaS
SaSaSaSaíííída de Valoresda de Valoresda de Valoresda de Valores
� Exibe em tela a resposta dada pelo programa ao usuário
� Representado pela função printf()� Poderá retornar apenas uma mensagem:
printf ("Qual é a sua idade? ");
� Permite que sejam incluídos caracteres especiais:printf(" Eu \n Tu \n Ele \n Nós \n Vós \n Eles");
printf("Nome Completo:\n");
Algoritmos e a Linguagem C | Introdução à Computação 12 de 312014 © MdaS
SaSaSaSaíííída de Valoresda de Valoresda de Valoresda de Valores
� Alguns caracteres especiais são utilizados na escrita na tela:
Caractere \\\
Caractere "\"
Caractere nulo\0
Início da linha (Home)\r
Alerta sonoro (beep)\a
Novo formulário\f
Apaga caractere (Backspace)\b
Tabulação\t
Nova linha\n
OperaOperaOperaOperaççççãoãoãoãoSSSSíííímbolombolombolombolo
Algoritmos e a Linguagem C | Introdução à Computação 13 de 312014 © MdaS
ExemploExemploExemploExemplo
� Exiba uma mensagem inicial para um programa em C
� O system("PAUSE"); é um comando do sistema que para a execução do programa. Neste caso, ele serve para evitar que o programa execute os seus comandos e a janela desapareça.
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Ola, seja bem vindo ao nosso programa!\n");
system("PAUSE");
}
Algoritmos e a Linguagem C | Introdução à Computação 14 de 312014 © MdaS
VariVariVariVariááááveisveisveisveis
� As variáveis são divididas em tipos numéricos e não--numéricos
� Dentre os tipos numéricos, os mais utilizados são:� int: reservado para números inteiros
� float: reservado para números de ponto flutuante
� double: reservado para números de ponto flutuante de precisão dupla
� O tipo char é utilizado para definir uma variável não--numérica, ou seja, uma variável textual
Algoritmos e a Linguagem C | Introdução à Computação 15 de 312014 © MdaS
VariVariVariVariááááveisveisveisveis
� Eis os tipos primitivos de variáveis, com variantes:� unsigned (sem sinal);
� short (mais curta);
� long (mais longa):
Algoritmos e a Linguagem C | Introdução à Computação 16 de 312014 © MdaS
DeclaraDeclaraDeclaraDeclaraçççção de Varião de Varião de Varião de Variááááveisveisveisveis
� A declaração de variáveis em C deve ser feita abaixo da chamada de biblioteca de funções:
� Primeiro, sempre é o tipo
� Em seguida, os nomes das variáveis deste tipo
� Sempre termina com um ponto e vírgula
tipo var1, var2;
Algoritmos e a Linguagem C | Introdução à Computação 17 de 312014 © MdaS
DeclaraDeclaraDeclaraDeclaraçççção de Varião de Varião de Varião de Variááááveisveisveisveis
� Procure dar nomes de fácil compreensão para as variáveis � que você e outros entendam
� Devem SOMENTE conter letras, números ou a sublinha ou underline ( _ )
� SEMPRE se inicia com uma letra
� Nada de espaços, letras acentuadas e outros tipos de caracteres especiais
Algoritmos e a Linguagem C | Introdução à Computação 18 de 312014 © MdaS
Entrada de ValoresEntrada de ValoresEntrada de ValoresEntrada de Valores
� Utilizado para receber dados digitados pelo usuário
� São armazenados em variáveis� Representada pela função scanf()
scanf("expressao de controle", &variavel);
� Note que:� A variável deve sempre ser precedida pelo &
� Sempre deve vir após a vírgula
� A expressão sempre deve ser concluída com um ponto e vírgula!
� Mas, o que é expressão de controle?
Algoritmos e a Linguagem C | Introdução à Computação 19 de 312014 © MdaS
Entrada de ValoresEntrada de ValoresEntrada de ValoresEntrada de Valores
� Expressão de controle indica que tipo de dados devem ser lidos na variável
Caractere %%%
Representação hexadecimal%x
Representação octal%o
Número em notação científica%e
Número de ponto flutuante (real)%f
Número sem sinal (unsigned)%u
Número inteiro%d
Cadeia de caracteres (string)%s
Caractere simples%c
OperaOperaOperaOperaççççãoãoãoãoSSSSíííímbolombolombolombolo
Algoritmos e a Linguagem C | Introdução à Computação 20 de 312014 © MdaS
AtribuiAtribuiAtribuiAtribuiçççção de Valoresão de Valoresão de Valoresão de Valores
� Utilizado para atribuir a variáveis:� Valores pré-definidos
� Resultados de expressões
� Representados pelo símbolo =
� Significa que a variável do lado esquerdo receberá o resultado expresso no lado direito� Sempre terminada com ponto e vírgula
x = a + b – 2;
y = "Meu amor por você é...";
z = "Falso";
Algoritmos e a Linguagem C | Introdução à Computação 21 de 312014 © MdaS
AtribuiAtribuiAtribuiAtribuiçççção de Valoresão de Valoresão de Valoresão de Valores
� Operações matemáticas � Funções matemáticas� Biblioteca <math.h>
Maior ou igual>=
Menor ou igual<=
Maior>
Menor<
Diferente!=
Igual==
Resto%
Incremento++
Divisão/
Multiplicação*
Subtração-
Adição+
OperaOperaOperaOperaççççãoãoãoãoSSSSíííímbolombolombolombolo
xypow(x,y)
Raiz cúbicacbrt()
Raiz quadradasqrt(x)
Quadradosqr(x)
Arredondamento para cimafloor(x)
Arredondamento para baixoceil(x)
Valor absolutoabs(x)
Logaritmo naturalln(x)
Cossenocos(x)
Senosen(x)
exexp(x)
OperaOperaOperaOperaççççãoãoãoãoFunFunFunFunççççãoãoãoão
Algoritmos e a Linguagem C | Introdução à Computação 22 de 312014 © MdaS
AtribuiAtribuiAtribuiAtribuiçççção de Valoresão de Valoresão de Valoresão de Valores
� Precedência nas operações matemáticas:� 1º: funções matemáticas
� 2º: *, / e %
� 3º: + e -
� Precedência pode ser alterada com o uso de parênteses
� O separador decimal é sempre o ponto (.)raiz2 = 1.41;
centavos = 0.25 + 5 * 0.10;
----999925252525ResultadoResultadoResultadoResultado
c = (5 + 4) * (7 – 8);c = 5 + 4 * 7 – 8;OperaOperaOperaOperaççççãoãoãoão
Algoritmos e a Linguagem C | Introdução à Computação 23 de 312014 © MdaS
SaSaSaSaíííída de Valoresda de Valoresda de Valoresda de Valores
� A função printf()também:� Pode retornar apenas uma mensagem:
printf ("Entre com sua idade: ");
� Ou pode retornar o valor de uma variável
� Utilizando expressões de controleprintf ("Idade: %f", idade);
printf ("Nome: %s. Idade: %f", nome, idade);
printf ("Nome Completo: \n %s", nome_compl);
Algoritmos e a Linguagem C | Introdução à Computação 24 de 312014 © MdaS
ExemploExemploExemploExemplo
� Calcular a média aritmética entre dois números
#include <stdio.h>
#include <stdlib.h>
float n1, n2, media;
int main()
{
printf("Entre com um numero: ");
scanf("%f", &n1);
printf("Entre com outro numero: ");
scanf("%f", &n2);
media = (n1 + n2)/2;
printf("Media = %f", media);
system("PAUSE");
}
Algoritmos e a Linguagem C | Introdução à Computação 25 de 312014 © MdaS
ExemploExemploExemploExemplo
� Calcular o perímetro e a área de um quadrado de lado ℓ
#include <stdio.h>
#include <stdlib.h>
float l, p, a;
int main()
{
printf("Medida do lado do quadrado: ");
scanf("%f", &l);
p = 4*l;
a = l*l;
printf("Perimetro = %f\n", p);
printf("Area = %f\n", a);
system("pause");
}
Algoritmos e a Linguagem C | Introdução à Computação 26 de 312014 © MdaS
ExemploExemploExemploExemplo
� Elaborar um algoritmo que receba o salário de um funcionário e o percentual de aumento, calcule e mostre o valor do aumento e o novo salário
#include <stdio.h>
#include <stdlib.h>
float sal, perc, novo_sal, aumento;
int main()
{
printf("Entre com o salario e o percentual de aumento: ");
scanf("%f %f", &sal, &perc);
aumento = sal*(perc/100);
novo_sal = sal + aumento;
printf("Novo salario: R$ %f com aumento de R$ %f", novo_sal, aumento);
system("pause");
}
Algoritmos e a Linguagem C | Introdução à Computação 27 de 312014 © MdaS
Ambiente de ExecuAmbiente de ExecuAmbiente de ExecuAmbiente de Execuççççãoãoãoão� O ambiente de execução a ser utilizado é o Bloodshed Dev C++
� (Iniciar > Programas > Bloodshed Dev C++ > Dev C++)
� Para criar um novo programa, vá no menu � Arquivo > Novo > Arquivo Fonte� Ou utilize o atalho CtrlCtrlCtrlCtrl + N+ N+ N+ N
Algoritmos e a Linguagem C | Introdução à Computação 28 de 312014 © MdaS
Ambiente de ExecuAmbiente de ExecuAmbiente de ExecuAmbiente de Execuççççãoãoãoão
� Embora o programa chama-se Dev C++, o foco da disciplina é implementação de programas utilizando a linguagem C
� Neste caso, é importante salvar os arquivos com a extensão .c
� A extensão .cpp pode permitir comandos inválidos em um programa em C
C++C
Algoritmos e a Linguagem C | Introdução à Computação 29 de 312014 © MdaS
CompilaCompilaCompilaCompilaççççãoãoãoão
� Para compilar (criar o programa), salve o código-fonte:� Arquivo > Salvar como...� Ou utilize o atalho CtrlCtrlCtrlCtrl + S+ S+ S+ S
� Salve em uma pasta apropriada com o nome hellohellohellohello.c.c.c.c� Preferencialmente, em uma pasta no diretório Z:Z:Z:Z: ou pen-drive� Não salve em diretórios C:
� Senão você não conseguirá abrir depois...
� Pressione a tecla F9 e verá o resultado...� Para abrir novamente, vá em
� Arquivo > Abrir...� Ou utilize o atalho CtrlCtrlCtrlCtrl + O+ O+ O+ O� Escolha o arquivo no diretório onde ele está alocado
Algoritmos e a Linguagem C | Introdução à Computação 30 de 312014 © MdaS
ExercExercExercExercíííícioscioscioscios
� Faça um programa em C para os seguintes casos:� a) Calcular a média de quatro notas bimestrais de um aluno
� b) Calcular o comprimento e a área de uma circunferência� considere π = 3.1415
� c) Calcular a área de um triângulo, dadas a sua base e a sua altura
� d) Calcular a raiz de uma equação de 1º grau, dados os coeficientes a e b
� ax + b = 0