Algoritimo e logica de programação
Por: Engenharia de Controle e Automação • 24/11/2015 • Trabalho acadêmico • 2.328 Palavras (10 Páginas) • 372 Visualizações
RESUMO E LISTA DE EXERCÍCIOS COMENTADOS
Bibliotecas
Na medida em que a linguagem C foi crescendo, bibliotecas foram criadas para que assim não fosse necessário criar códigos para execuções básicas, facilitando assim a difusão da linguagem, uma vez que iniciantes passavam a usar a linguagem mais rapidamente.
No caso de C, a biblioteca básica necessária para executar comandos de entrada e saída é a "stdio". Tal biblioteca carrega funções padrões (standard, std) de entrada e saída (input and output, io), devemos inclui-la em todo início de código através do seguinte comando:
#include
A extensão "*.h" (header) é do arquivo que contém as funções já prontas, no caso desta, o compilador já a contém dentro da pasta ".../include" do programa utilizado para compilar. Sabendo como instalar a biblioteca de funções padrões de entrada e saída, resta conhecer algumas funções básicas e o que cada uma delas faz.
Há outras bibliotecas como a "math.h", que contém funções matemáticas não tão simples, e a "conio.h" ("console input and output") que possui funções como de limpar a tela, de receber qualquer caractere digitado, dentre outras funções, e dentre outras bibliotecas.
printf();
Tal função imprime na tela do computador o texto entre aspas, dentro dos parênteses, porém, formatado. Primeiro exemplo de programa:
// Seu primeiro Programa
# include
main(){
printf("Este eh o texto do meu primeiro programa");
}
Observação: não devemos usar acentos gráficos.
Para imprimir uma variável, deve-se colocar dentro das aspas % e a letra que representa o tipo da variável, e, logo após as aspas, ainda entre os parênteses uma vírgula e só então a variável.
Exemplo:
# include
int main(){
int a;
float b;
char c[10]; //tal caractere recebe uma palavra de até no máximo 10 letras
a = 10;
b = 2.5;
c = "palavrad10";
printf("Vou imprimir um inteiro %d, agora um flutuante %f, o mesmo flutuante com apenas uma casa decimal %.1f e para terminar um caractere %c", a, b, b, c);
/*deve-se colocar as variáveis na ordemque as foi usando dentro dos parênteses*/
}
Caso a variável seja do tipo float pode-se especificar a precisão na qual se deseja imprimir, por exemplo, para imprimir um número com duas casas decimais deve-se colocar: %.2f.
scanf();
É a função básica de leitura, e com ela pode-se ter uma conexão com o usuário, assim o mesmo pode enviar dados para o programa processar.
Exemplo:
/*Programa para cálculo da média, aqui você pode usar a vontade acentos, já que para o programa comentários são ignorados... */
# include
main(){
float n1,n2,n3,m;
printf("Digite suas tres notas na ordem em que as fez:\n");
// o "\n" serve para pular uma linha
scanf("%f%f%f", &n1, &n2, &n3);
/*Ao usar o scanf deve-se colocar o "&" na frente da variável, tal fato se deve porque o símbolo & serve para direcionar o endereço no qual o conteúdo lido será guardado, caso isso não seja usado o conteúdo lido não será guardado no endereço de memória da variável requerida. Portanto, não esqueça!*/
m = (4*n1+5*n2+6*n3)/15;
printf("Sua media eh %.2f", m);
//lembre-se de não usar acento nas palavras
}
Outros Comandos
Assim como o \n, há outros comandos também usados para o texto exibido. Alguns deles são:
[pic 1]
Operadores de incremento e decremento
Um operador bastante utilizador em C, que inclusive deu nome ao seu "sucessor" (C++) é o incrementador (++), ele acrescenta uma unidade à variável, enquanto o decrementador (--) subtrai uma.
São dois operadores bastante úteis para simplificar expressões:
++ (incremento de 1)
-- (decremento de 1)
Podem ser colocados antes ou depois da variável a modificar. Se inseridos antes, modificam o valorantes da expressão ser usada e, se inseridos depois, modificam depois do uso.
Alguns exemplos:
x = 2;
var = ++x;
No caso acima, o valor de var será 3 e o de x será 3.
x = 2;
var = x++;
No caso acima, o valor de var será 2 e o de x será 3.
IF
A própria tradução diz tudo ("if = se"), se algo for verdadeiro, faça estes comandos, podendo incluir o "else" (senão) para o caso negativo e passando também para este um conjunto de comandos.
Exemplo:
/*Programa da média melhorado (incluindo uma impressão de aprovação, 4a. prova e recuperação)*/
# include
main(){
float n1,n2,n3,m;
printf(\Digite suas tres notas na ordem que as fez:\n");
scanf("%f%f%f", &n1, &n2, &n3);
m = (4*n1+5*n2+6*n3)/15;
if(m>=7){
printf("Sua media e %.2f, parabensvoce foi aprovado.\n", m);
}else{
if(m>=3){
printf("Sua media e %.2f, voce esta na quarta prova.\n", m);
}else{
printf("Sua media e %.2f, voce esta reprovado.\n", m);
}
}// <- este „fecha‟ o primeiro else e o próximo „fecha‟ o main
}
SWITCH
O que o switch faz seria perfeitamente feito por vários "if", mas daria muito trabalho e ficaria, de certa forma, desorganizado. O switch, como o próprio nome diz, faz uma escolha. Ele pega uma variável e de acordo com o valor contido nesta variável ele toma uma decisão.
É bastante útil na construção de menus primitivos, como o mostrado abaixo. Analise bem a sintaxe, pois é a que apresenta mais diferença em relação às outras estruturas, por isso, facilmente esquecida:
# include
main(){
int idade, escolha;
char nome[50], sexo[1];
printf("##### Banco de dados #####\n\nDigite seu nome: ");
gets(nome);
/*a função gets é semelhante ascanf no entanto só serve para a leitura de caracteres que necessitam do uso da barra de espaço como elemento, caso fosse usado o scanf assim que apertássemos a barra de espaço a leitura do caractere seria finalizada.*/
print("Digite sua idade: ");
scanf("%d", &idade);
printf("Digite seu sexo (M/F): ");
scanf("%c", sexo);
//para a leitura de caracteres não é necessário usar o &
...