Fundamentos de programação. UTFPR – Fundamentos de Programação 1 Programa Um programa de...
Transcript of Fundamentos de programação. UTFPR – Fundamentos de Programação 1 Programa Um programa de...
Fundamentos de programação
UTFPR – Fundamentos de Programação
1 Programa Um programa de computador é um conjunto de instruções que
descrevem uma tarefa a ser realizada por um computador com o objetivo de resolver um problema. Programa pode referir-se às instruções escritas de acordo com a sintaxe e a semântica definidas por uma linguagem de programação (código fonte) ou à forma executável desse código.
Um programa é basicamente composto por: Entrada
Obtenção de dados para o programa trabalhar (receber dados do usuário ou de outras fontes)
Processamento Manipulação de constantes e de variáveis Resolução de expressões matemáticas Execução de instruções sequenciais, de decisão e de repetição Manipulação de dados em bases de dados e arquivos ...
Saída Informar dados de processamento (para o usuário, armazená-los,
transmiti-los, acionar dispositivos...)
UTFPR – Fundamentos de Programação
1.1 Estrutura básica de um programa
Entrada Variáveis e constantes
Processamento Instruções
Saída Texto, conteúdo de variáveis e formatação
fluxode execução
sequencial
fluxode execução
com repetição
fluxode execuçãocom desvio
UTFPR – Fundamentos de Programação
1.2 Método para construir um programa Método para a construção de um programa:
Entender o problema; Retirar do problema as entradas de dados necessárias; Definir as saídas que o programa deve fornecer; Determinar o que deve ser feito para transformar as
entradas nas saídas (o algoritmo), resolver o problema; Determinar o tipo de dado a ser manipulado, definindo
as variáveis e as constantes necessárias; Definir as instruções e as estruturas de decisão e de
repetição necessárias; Apresentar os resultados; Verificar se as instruções definidas resolvem o problema
da maneira esperada; Teste de mesa, por exemplo.
UTFPR – Fundamentos de Programação
1.4 Considerações
No início do programa colocar o enunciado do problema;
Comentar as partes mais complexas ou relevantes do programa;
Utilizar espaços e linhas em branco para melhorar a legibilidade do programa, mas sem abusar dos mesmos;
Escolher nomes representativos para os identificadores;
Um comando por linha é suficiente;
Utilizar parênteses para aumentar a legibilidade das expressões e evitar erros;
Utilizar identação adequada. Identar o código é fundamental para sua legibilidade.
UTFPR – Fundamentos de Programação
2 Linguagem C
Linguagem C Criada por Dennis M.Ritchie em 1972, nos
laboratórios Bell. Definida por uma norma ANSI em 1988.
UTFPR – Fundamentos de Programação
2.1 Palavras reservadas da linguagem C
Palavras chave da linguagem C
auto double int struct
break else long switch
case enum* register typedef
char extern return union
const* float short unsigned
continue for signed* void*
default goto sizeof volatile
do if static while
* ANSI
UTFPR – Fundamentos de Programação
2.2 Estrutura de um programa C
Estrutura básica de um programa C/* Programa em Linguagem C */ //comentário#include <stdio.h> //biblioteca com funções
int main(void)//função principal
{//marca o início do bloco de instruções
/*instruções:declaração de variáveis e constantesobtenção de valores para variáveisoperações lógicas e aritméticasestruturas sequenciais, de decisão e de repetiçãoapresentação de resultados*/
}//marca o fim do bloco de instruções e da função main
UTFPR – Fundamentos de Programação
2.2 Estrutura de um programa C Um programa em C é constituído por uma ou mais funções. Em um programa C executável deve existir uma e somente uma
função com a identificação main
Estrutura básica de um programa em C:#include “biblioteca”Nome_da_funcao ( ) //pode ser a main ou outra função{
Variáveis locais;Instruções;
}
Exemplo:# include <stdio.h>int main(void){
int varlocal; //instrução que declara uma variável localvarlocal = 3; //instruçãovarlocal = varlocal + 5; //instrução
printf(“Conteúdo da variável %d”,varlocal); //instrução}
UTFPR – Fundamentos de Programação
2.2.1 Diretiva include #include biblioteca
Instrui o compilador a ler o conteúdo de um arquivo e a considerar o conteúdo desse arquivo.
O nome do arquivo deve estar entre aspas (procura-o inicialmente no diretório atual) ou entre símbolos de menor e de maior (procura-o nos diretórios padrão de include para o compilador). #include “biblioteca1.h” #include “arquivo1.c” #include <stdio.h>
Recomendação: “ ” para incluir arquivos do projeto; < > para incluir os arquivos de cabeçalho padrão.
UTFPR – Fundamentos de Programação
2.2.2 Ponto e vírgula e Chaves
Ponto e vírgula: Toda a instrução, ou comando, em C
termina obrigatoriamente com “;”
Chaves: Utilizadas para definir um bloco ou um
conjunto de instruções relacionadas e logicamente conectadas. Um bloco começa com uma { e termina com uma }
UTFPR – Fundamentos de Programação
2.2.3 Bloco de comandos
Um bloco de comandos ou conjunto de instruções pode ser colocado em qualquer lugar em que seja possível a colocação de uma única instrução.
Exemplo: #include <stdio.h> //contém o scanf e o printf
int main (void) {
int total, a=1, b=2; if (a<b) { scanf(“%d”,&total); printf (“%d\n”, total); } prinf(“\n a:%d e b:%d”,a,b);
}
Bloco de comandos
Bloco de comandos
UTFPR – Fundamentos de Programação
2.2.4 Comentários
Comentários são anotações desconsideradas na compilação/interpretação ou execução do programa. /* ... */ - comentário com início e fim delimitado, ou de
múltiplas linhas // - é comentado a partir da especificação // até o final da
respectiva linha
Exemplos:/* o imposto deve considerar a alíquota do ICMS. */preco = precobruto + imposto;
//mostrar o valor armazenado na variável preçoprintf (“Preço do produto é %.2f", preco);
printf (“Preço do produto é %.2f", preco); //imprimir o preço
UTFPR – Fundamentos de Programação
2.2.5 Instruções
Instruções terminam sempre com ponto e vírgula (;)
Instrução de atribuição de um valor para uma variável variável = valor; //variável “recebe” valorExemplos:
a = 3;x = 3+4/2;y= sqrt(3*a);
Instrução para chamada a (uso de) uma função nome_da_função (parâmetros);Exemplos:
printf(“Informe um valor: ”); scanf(“%d”, &Valor); funcao1(1,Valor, ‘r’);
UTFPR – Fundamentos de Programação
3 Elementos fundamentais da linguagem C
Tipos de dados; Variáveis e constantes; Operadores aritméticos, relacionais e lógicos; Instruções de entrada e saída; Estrutura sequencial; Estruturas de controle decisão; Estruturas de controle repetição; Estruturas de dados homogêneos; Estruturas de dados heterogêneos; Funções.
UTFPR – Fundamentos de Programação
3.1 Tipos de dados
Tipos de dados representam os tipos de valores que podem ser manipulados por um programa: Básicos:
inteiros: int reais ou ponto flutuante: float e double caracteres: char sem valor: void
Derivados dos tipos básicos: Vetores (array) de caracteres (string) e numéricos,
unidimensionais e multidimensionais (matriz) registros (struct) arquivos em disco (file) ...
Objetos (orientação a objetos) Agrupam dados (atributos do objeto) e funções
(métodos) que manipulam esses dados.
UTFPR – Fundamentos de Programação
3.1 Tipos de dados
Tipos de dados básicos
Tipo Tamanho em bits Faixa
char 8 0 a 255
int 16 (depende da arquitetura de hardware)
-32768 a 32767
float 32 -3.4E-38 a 3.4E38 seis dígitos de precisão
double 64 -1.7E-308 a 1.7E308 dez dígitos de precisão
void 0 Sem valor
UTFPR – Fundamentos de Programação
3.1.1 Tipos de dados: modificadores de tipos
Modificadores de tipo
Exemplo: long int -> 32(bits), faixa -2.147.483.648 a
2.147.483.647 unsigned char -> 8 (bits), faixa de 0 a 255
Modificador Aplica-se a Significa
short int Menor dimensão
long int, double Maior dimensão
signed char, int Com sinal
unsigned char, int Sem sinal
UTFPR – Fundamentos de Programação
3.1.2 Tipos de dados: modelador Modelador de tipo (type cast) Um modelador é aplicado a um valor, expressão ou variável. Ele força o mesmo a ser de um tipo especificado. Forma geral:
(tipo) valor/expressão/variável
Exemplo: #include <stdio.h>int main (void) { int Num=10; float F; F = (float) Num/7; /* Uso do modelador transforma Num em float e posteriormente é realizada a divisão por 7, resultando uma divisão float*/ printf (“Resultado: %f",F);}
Sem o modelador o C faria uma divisão inteira entre 10 e 7. O resultado seria 1 que seria convertido para float, mas continuaria a ser 1.0. Com o modelador, Num é transformado em float (10.0), dividido por inteiro, e resultado é float porque um dos divisores é float.
UTFPR – Fundamentos de Programação
3.2 Variáveis
Uma variável indica uma posição de memória reservada, identificada por um nome (identificador), que pode ser utilizada para armazenar um valor de um tipo de dado especificado e esse valor poder ser recuperado.
Uma variável possui um nome que a identifica e um tipo que determina o conteúdo que ela pode armazenar. Esse tipo determina a “quantidade” necessária de células de memória para armazenar um dado desse tipo.
Memória
Variável
Nome
UTFPR – Fundamentos de Programação
3.3 Português estruturado: mapeamento de variáveis na memória
O computador trabalha diretamente com os identificadores (os nomes definidos para as variáveis). A manipulação das células de memória é feita por meio dos seus endereços.
O tradutor (compilador ou interpretador) faz uma associação entre os identificadores e os endereços de memória reservados para as mesmas.
UTFPR – Fundamentos de Programação
3.3 Português estruturado: Tabela de Símbolos
Forma de associação entre as variáveis e os seus respectivos endereços de memória
UTFPR – Fundamentos de Programação
3.2 Variáveis Todas as variáveis em C devem ser declaradas. Forma geral de
declaração:
tipo identificador_da_variável;
tipo é qualquer tipo de dado válido (char, int, float, double) mais qualquer modificador válido para o respectivo tipo de dado (long, short, signed, unsigned).
identificardor_da_variável é o nome da variável, utilizado para acessar o seu conteúdo e para atribuir-lhe um valor para ser armazenado no endereço de memória reservado para a mesma.
UTFPR – Fundamentos de Programação
3.2 Variáveis
Identificadores são nomes de variáveis, funções e outros elementos definidos pelos usuários. Podem possuir até 32 caracteres; O primeiro caractere deve ser letra ou sublinhado e
os caracteres subsequentes podem ser letras, números ou sublinhados;
C é case sensitive;
Nome, NOME, NoMe - são identificadores distintos
O nome (identificador) não pode ser o nome de uma palavra chave: auto, static, extern, int, long, if, while, do, ......
UTFPR – Fundamentos de Programação
3.2.1 Declaração de variáveis
Exemplos de declaração de variáveis
int Valor;float Preco;char Sexo;double Fatorial;
Tipo de dado
Nome da variável
Cada variável possui um espaço de memória reservado correspondente ao tamanho do seu tipo declarado.
UTFPR – Fundamentos de Programação
3.2.2 Inicialização de variáveis
As variáveis em C podem receber um valor no momento da sua declaração. Isso é determinado inicialização da variável.
int Valor = 1;float Preco = 150.00;char Sexo = 'F';double Fatorial = 1;
Tipo de dado
Nome da variávelValor de inicialização
UTFPR – Fundamentos de Programação
3.2.3 Lista de variáveis
Lista_de_variáveis - um ou mais nomes de identificadores separados por vírgula.
Exemplos: int contador, i, j, valor1=0; double balanco_anual, balanco_mensal;
UTFPR – Fundamentos de Programação
3.2.4 Atribuição a uma variável 1) NomeDaVariável = um valor (uma constante); 2) NomeDaVariável = uma variável; 3) NomeDaVariável = uma expressão; 4) NomeDaVariável = chamada a uma função;
Semântica do comando de atribuição: 1) Armazena o valor atribuído à variável a partir da posição inicial
do endereço de memória reservado para ela; 2) Copia o conteúdo da variável de origem armazenando-o a partir
da posição inicial do endereço de memória reservado para a variável de destino;
3) Resolve a expressão matemática, em seguida armazena o resultado a partir da posição inicial do endereço de memória reservado para a variável;
4) Executa a função e armazena o seu retorno a partir da posição inicial do endereço de memória reservado para a variável.
Obs. Se o tipo do valor atribuído à variável e o tipo da variável que recebe este valor forem distintos, pode ocorrer erro de incompatibilidade de tipo ou perda de informação.
UTFPR – Fundamentos de Programação
3.3 Função de entrada de dados
Leitura de dados pela entrada padrão (teclado) scanf (“string de controle”, lista de argumentos);
Onde: string de controle identifica o tipo de dado que será
lido. lista de argumentos são os identificadores das
variáveis que armazenarão os valores lidos.
Exemplos: scanf(“%d”,&idade); scanf(“%s”,nome); Para strings (%s), o caractere
& não deve ser usado.
%XX tipo de dado a ser lido
UTFPR – Fundamentos de Programação
3.3.1 Operador de Endereço & Quando & é utilizado precedendo uma variável está sendo
indicado o endereço dessa variável na memória.
Exemplo:#include <stdio.h>int main (void){
int num;printf(“Informe um número: ”);scanf(“%d”,&num); /*No endereço reservado para a
variável num será armazenado o valor informado para essa variável*/
printf (“valor = %d , endereço = %p”,num, &num); }
Saída: valor = 2, endereço = 0023FF70(o endereço varia conforme a memória da máquina)
UTFPR – Fundamentos de Programação
3.3.2 Função de saída de dados
Apresentação de dados na saída padrão (monitor de vídeo) printf (“texto, strings de controle e caracteres de
formatação”, lista de argumentos); Onde:
Texto que será impresso literalmente ou caracteres de formatação.
Strings de controle identificam o tipo de dado contido nas variáveis cujo conteúdo será mostrado.
Caracteres de formatação indicam instruções como quebra de linha e tabulação.
Lista de argumentos são os identificadores das variáveis que contêm constantes, chamadas a funções e expressões que possuem os valores a serem impressos, de acordo com os caracteres de formatação.
Exemplo:printf(“\nSua idade é: %d anos\n”, idade);
UTFPR – Fundamentos de Programação
3.3.2 Função de saída de dados
saída formatada com printf
#include <stdio.h>
int main(void){
printf (“%3.1f \n”, 3456.78);
printf (“%.0f \n”, 3456.78);
}
Saída: 3456.8 3456
X.YfX quantidade de caracteres antes do ponto decimal
Y quantidade de caracteres depois do ponto decimal
UTFPR – Fundamentos de Programação
3.3.2 Função de saída de dados
Caracteres de formatação:\n nova linha \r enter\t tabulação (tab)\b retrocesso\” aspas\\ barra
%% símbolo de %
UTFPR – Fundamentos de Programação
3.3.3 Função de entrada/saída
Strings de controle: %c ® caractere%d ou %i ® inteiro%ld ® inteiro longo%e ® número ou notação científica %f ® ponto flutuante%o ® octal%x ® hexadecimal%s ® string (cadeia de caracteres)%lf ® double %Iu ® endereço de memória
UTFPR – Fundamentos de Programação
Operadores são elementos funcionais que atuam sobre operandos e produzem um determinado resultado.
Uma expressão é composta de operadores e operandos. A expressão 3 + 2 relaciona dois operandos
(os números 3 e 2) por meio do operador de adição (+).
Um operando pode ser o conteúdo de uma variável, o retorno de uma função ou um valor constante.
3.4 Operadores
UTFPR – Fundamentos de Programação
3.4 Operadores: expressões
Uma expressão matemática é um conjunto de variáveis e constantes numéricas relacionadas por meio de operadores aritméticos compondo uma fórmula que, uma vez avaliada, resulta um valor.
O conceito de expressão aplicado à computação assume uma conotação mais ampla: uma expressão é uma combinação de variáveis,
funções, constantes e operadores, e que, uma vez avaliada, resulta um valor. As variáveis e funções, constantes são os operandos.
UTFPR – Fundamentos de Programação
BH
Triângulo de base (b) e altura (h)
A fórmula da área do triângulo utiliza três variáveis: b e h, que contém as dimensões do triângulo, e area que armazena o valor calculado (o resultado da expressão). Há, ainda, uma constante (2) e os operadores de multiplicação (*) e divisão (/).
área = b x h 2
area = (b * h) / 2;
matemática
computacional
3.4 Operadores: expressão
UTFPR – Fundamentos de Programação
3.4 Operadores Operadores unários atuam sobre um único
operando. Ex. O sinal de (-) na frente de um número, cuja função é inverter seu sinal.
Operadores binários, quando atuam sobre dois operandos. Ex. soma, subtração, multiplicação e divisão.
operadores resultado aritméticos numérico lógicos lógico relacionais lógico
UTFPR – Fundamentos de Programação
3.4.1 Operadores aritméticos
Operador Ação
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Resto da divisão inteira
- Subtração (unário)
-- Decremento
++ Incremento
UTFPR – Fundamentos de Programação
3.4.1.1 Incremento e Decremento
x = x + 1; é o mesmo que x++; x = x - 1; é o mesmo que x--;
Exemplos: x = 10; y = ++x; coloca 11 em x e y recebe 11
x = 10; y = x++; coloca 10 em y e x recebe 11
x = 10; y = --x; coloca 9 em x e y recebe 9
x = 10; y = x--; coloca 10 em y e x recebe 9
UTFPR – Fundamentos de Programação
3.4.2 Operadores relacionais
== igual a != diferente de > maior que < menor que >= maior ou igual a <= menor ou igual a
Var X Var Y Teste lógico Resultado
X=2 Y=3 X == Y Falso
X=2 Y=3 X != Y Verdadeiro
X=2 Y=3 X >= Y Falso
X=2 Y=3 X < Y Verdadeiro
UTFPR – Fundamentos de Programação
3.4.3 Operadores lógicos
! negação lógica && “e” lógico, conjunção || “ou” lógico, disjunção
Condição1Var1 = 3
Condição2Var2 = 3
Condição1 & Condição2 Condição1 | | Condição2 ! Condição1
Var1 > 2 V
Var2 > 1V
V V F
Var1 > 2 V
Var2 == 2 F
F V F
Var1 > 5 F
Var2 > 2 V
F V V
Var1 > 5 F
Var2 < 2F
F F V
UTFPR – Fundamentos de Programação
3.4.4 Operadores lógicos Em C, o resultado da comparação será o valor ZERO se o
resultado de um teste lógico é FALSO e um valor DIFERENTE DE ZERO (normalmente 1) se resultado de um teste lógico é VERDADEIRO.
Exemplo:#include <stdio.h>int main(void){ int verdadeiro, falso; verdadeiro = (15 < 20); falso = (15 == 20); printf(“Verdadeiro= %d, Falso= %d”, verdadeiro, falso);}
Saída: Verdadeiro = 1, Falso = 0
UTFPR – Fundamentos de Programação
3.4.5 Precedência de operadores
O uso de parênteses altera a precedência dos operadores. operadores de mesma precedência, são executados da
esquerda para a direita.
Maior precedência () [] ->
! ++ -- -(unário) (cast)
* / %
+ -
== !=
!
&&
||
? ;
= += -= *= /= etc.
Menor precedência ,
UTFPR – Fundamentos de Programação
Referências
SCHILDT, H. C Completo e total, 3ª ed. São Paulo: Makron Books, 1996.
MIZRANI, V. V. Treinamento em linguagem C: curso completo - módulo 1. São Paulo: McGraw-Hill, 1990.
Materiais obtidos na Internet Auxílio do professor Omero F. Bertol