Estrutura de Dados
Linguagem C – Aula 1
Ricardo Oliveira
Forma de um Programa em C
C é case-sensitive
As palavras reservadas são em
minúsculas
else é palavra reservada, mas ELSE ou
Else não
Um programa em C consiste de uma ou
mais funções
Forma de um Programa em C
declarações globais
tipo_devolvido main(lista de parâmetros) {
seqüência de comandos }
tipo_devolvido f1(lista de parâmetros) {
seqüência de comandos }
...
tipo_devolvido fN(lista de parâmetros) {
Um Primeiro Programa
#include <stdio.h>
/* Um Primeiro Programa */
int main ()
{
printf (“Olá Mundo!\n”);
return(0);
Outro Programa
#include <stdio.h> int main (){
int Dias; /* Declaração de Variáveis */ float Anos;
printf (“Digite o número de dias: "); /* Entrada de Dados */
scanf ("%d",&Dias);
Anos=Dias/365.25; /* Conversão Dias->Anos */ printf ("\n\n%d dias equivalem a %f
anos.\n",Dias,Anos); return(0);
O que faz o seguinte programa?
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
printf("%d",x);
return(0);
Introdução às Funções
Bloco de código de programa que pode
ser usado diversas vezes em sua
execução
O programa fica mais legível, mais bem
estruturado
Um programa em C consiste de várias
funções colocadas juntas
Uma função possui argumentos e
Introdução às Funções
#include <stdio.h>int square (int x) /* Calcula o quadrado de x */ { printf ("O quadrado e %d",(x*x));
return(0); }
int main () { int num;
printf ("Entre com um numero: "); scanf ("%d",&num);
printf ("\n\n"); square(num);
Função com Múltiplos Argumentos
#include <stdio.h>int mult (float a, float b,float c) /* Multiplica 3 numeros */ { printf ("%f",a*b*c); return(0); } int main () { float x,y; x=23.5; y=12.9; mult (x,y,3.87); return(0);
Retornando Valores
Indica-se, antes do nome da função, o
seu tipo de retorno
O que retornar é indicado pela palavra
reservada return
Uma função que não indica o seu tipo de
retorno usará um inteiro
Retornando Valores
#include <stdio.h>
float prod (float x,float y) { return (x*y);
}
int main () { float saida;
saida=prod (45.2, 0.0067);
printf ("A saida e: %f\n",saida); return(0);
Forma Geral de uma Função
tipo_de_retorno nome_da_função
(lista_de_argumentos)
{
código_da_função
}
Introdução Básica às Entradas e
Saídas
Caracteres (‘a’, ‘b’, ‘x’, etc.)
Tipo de dados char
Variáveis de 1 byte (8 bits)
O tipo char também pode armazenar
um número inteiro
Código ASCII correspondente ao
Exemplo de Uso de Caracteres
#include <stdio.h> int main () {
char Ch; Ch='D';
printf ("%c",Ch); /*Imprime D na tela*/ printf ("%d",Ch); /* Imprime o caractere como inteiro (68) */
Funções getch() e getche()
Funções para ler um caractere digitado
getch() apenas retorna o caractere digitado getche() imprime na tela o caractere, antes
de retornar
São encontradas no arquivo de cabeçalho
conio.h
Não pertencem ao padrão ANSI
Strings
Vetor de caracteres terminado com um
caractere nulo (código ASCII = 0)
O caractere nulo também pode ser representado por ‘\0’
Formato geral:
char nome_da_string [tamanho];
Strings
Para ler uma string fornecida pelo
usuário, pode-se usar a função gets()
O terminador nulo é colocado quando
Strings - Exemplo
#include <stdio.h>
int main () {
char string[100];
printf ("Digite uma string: "); gets (string);
printf ("\n\nVoce digitou %s",string); return(0);
Strings - Índices
Pode-se acessar caracteres aleatórios
dentro de um string
Usa-se índices
str[1] = 'a';
Acessa a segunda letra do string str
O índice sempre começa em 0Strings - Índices
#include <stdio.h> int main() { char str[10] = "Joao"; printf("\n\nString: %s", str); printf("\nSegunda letra: %c", str[1]); str[1] = 'U';printf("\nAgora a segunda letra eh: %c", str[1]);
Entradas e Saídas – printf()
Forma geral:
printf (string_de_controle,
lista_de_argumentos);
A string de controle descreve tudo o que
vai ser exibido na tela
Os códigos de controle (%) indicam a
Entradas e Saídas – printf()
Alguns códigos de controle
Código Significado
%d Inteiro
%f Float
Entradas e Saídas – printf()
Exemplos de printf()
printf ("Teste %% %%") -> "Teste % %" printf ("%f",40.345) -> "40.345"
printf ("Um caractere %c e um inteiro
%d",'D',120) -> "Um caractere D e um inteiro 120"
printf ("%s e um exemplo","Este") -> "Este e um exemplo"
Entradas e Saídas – scanf()
Formato geral:
scanf
(string-de-controle,lista-de-argumentos);
Pede dados ao usuário
Os argumentos substituem os códigos de
controle
É importante colocar o & antes das
Variáveis
Nomes de variáveis
Deve começar com letra ou sublinhado (_) Seguem letras, números ou sublinhado
Não devem ser palavras reservadas ou
nomes de funções nem do programador, nem de bibliotecas do C
Tipos do C
5 tipos básicos: int, char, float, void, double
void: tipo vazio ou “tipo sem tipo”
double: ponto flutuante com o dobro de precisão
4 modificadores de tipo: signed, unsigned,
short, long
Todos se aplicam a int
Declaração e Inicialização de
Variáveis
Forma geral:
tipo_da_variável lista_de_variáveis;
Variáveis podem ser globais, locais ou de
lista de parâmetros
Não podem ter o mesmo nome:
Duas variáveis globais
Declaração de Variáveis
#include <stdio.h> int contador;
int func1(int j) {/* aqui viria o código da funcao...*/} int main() {
char condicao; int i;
for (i=0; i<100; i=i+1) { /* Bloco do for */
float f2; func1(i);}
Declaração de Variáveis
Declarações de variáveis em C devem ser feitas em
início de bloco de código int main() {
int i; int j; j = 10;
int k = 20; /* Esta declaração de variável não é válida, pois não está sendo feita no início do
Incialização de Variáveis
Forma geral:
tipo_da_variável nome_da_variável = constante; Exemplos
char ch='D'; int count=0; float pi=3.141;Constantes
Constantes dos tipos básicos do C
char: ‘b’, ‘\n’, ‘\0’ int: 2, 32000, -130 long int: 100000, -467 short int: 100, 30 unsigned int: 50000, 34568 float: 0.0, 23.7, -12.3e-10
Constantes
Constantes hexadecimais e octais
Constantes hexadecimais: 0xEF, 0x12A4
Constantes octais: 03212, 034215432
No C, 025 é diferente de 25
Constantes strings
Ex: “Joao”
Constantes
Constantes de barra invertida \n – Nova linha
\t – Tabulação horizontal (tab) \” – Aspas
\’ – Apóstrofo \0 – Nulo
\\ – Barra invertida
\a – Sinal sonoro (beep)
Operadores Aritméticos
Operadores Aritméticos:
+ Soma (inteira e ponto flutuante)
- Subtração ou Troca de sinal (inteira e ponto flutuante)
* Multiplicação (inteira e ponto flutuante) / Divisão (inteira e ponto flutuante)
% Resto de divisão (de inteiros)
Operadores Aritméticos
Operadores de incremento pré-fixados e
pós-fixados
x = 23; y = x++; x = 24 e y = 23 x = 23; y = ++x;Operador de Atribuição
O operador de atribuição é o =
São expressões válidas:
x=y=z=1.5; /* Expressão 1 */
if (k=w) ... /* Expressão 2 */
Cuidado com a expressão 2
Não está havendo comparaçãoOperadores
Qual o resultado das variáveis x, y e z
depois da seguinte seqüência de
operações?
int x,y,z; x=y=10; z=++x; x=-x; y++;Operadores Relacionais e
Lógicos
Operadores Relacionais > Maior do que >= Maior ou igual a < Menor do que <= Menor ou igual a == Igual a != Diferente de Operadores Lógicos&& AND (e)
Modeladores (cast)