Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

ENGENHARIA DE SOFTWARE
APOSTILA AUXILIAR
Por: Paulo H. N. Souza – 2018
INTRODUÇÃO
	Prezados, bom dia, boa tarde.. Ou boa noite.. Assim como diz nosso colega de turma Eduardo Kraus. Este aqui será um material auxiliar com a finalidade de contribuir como vossos estudos. Não é fácil esta jornada de conhecimento destes tais “códigos”, “Linguagens”.... C..C++. JAVA (OH MY GOD :-0). Mas como colega de estudo de vocês, sei da determinação de cada um em aprendê-los, então aqui tentarei discutir alguns pontos práticos de desenvolvimentos e criação de seus código e resolução das atividades a partir de propostas de exercícios de grau semelhante.
	Para melhor entendimento peço que façam a leitura dos materiais das aulas, de modo a facilitar o próprio aprendizado de vocês aqui.. Assim aqui estaremos abordando de forma sucinta o conteúdo prático..
	Considerem aqui algo nada formal.. uma conversa interativa para aprendizado. Desde já os parabenizo.. Se chegaram aqui abrir este arquivo para leitura é um bom sinal que estão a procuro da formação profissionalizante de vocês.. E este é o primeiro passo de sucesso.. Vamos lá então..
														 Paulo Souza
souza.phn.agro@gmail.com
BORA LÁ ENTÃO FUTUROS ENGENHEIROS..
	Daqui em diante estarei pegando alguns pontos importantes das aulas e aplicando aqui em nosso estudo. Ressaltando novamente a importância da leitura o conteúdo de grau teórico. 
AULA 1
Linguagem de programação
	Esta primeira aula foi introdutória e aplicado os conceitos. Como a atividade I é conceitual não abordaremos aqui. Aqui só quero ressaltar que as vezes se tem algumas complicações de configuração do codeblocks se vocês baixarem em fontes alternativas. Então vou deixar aqui no drive o link para uma pasta do codeblocks já configurada.. É extrair e abrir pelo executável. Ok.
https://drive.google.com/open?id=1hTzEvwFf2u_tb3j4GYAKGwtRu3b3BGrv
----------------------------------------------------------------------
AULA 2
2.1 Para criação de um novo programa, seguimos
 
Menu FileNewProjectConsole ApplicationEscolhe a linguagem C ou C++;
Para programar em C.. uso também o Menu FileNewFileC/C++ source.. Vai nos 3 “pontinhos” e coloca nome ao projeto.
2. 2 Estrutura de um programa
	
	Aqui vemos que necessita uma estrutura para programação, vamos ver alguns pontos..
Estrutura geral
#include<stdio.h>
int main(){
printf("Ola amigos da Eng. Software");
return 0;
}
Aqui vemos uma estrutura, geral temos uma contagem e linhas vertical (Automática do programa, não é considerada), a inclusão de biblioteca (stdio.h.. 
Digamos que as bibliotecas são utilizadas para acessar outros códigos fontes que tem comanos para uma determinada atividade (funções)
 	int main – é a primeira função a ser executada no programa..As funções precisam ter um retorno que é relativo a atributo dado a ela.. No exemplo quando dizemos int main e return 0 – estamos relacionando que é uma função do tipo inteiro que vai retornar um inteiro.
	Enbananou a mente? Hehe Por enquanto apenas saibam disto.. Não precisam aprofundar, além disto entenda que existe os procedimentos que não retornam valor.. sendo definidos como void.. (exemplo void main).
Tags = São dados varias tags, vou dar destaque apenas uma
\n (barra ene)—Pois é disparadamente o mais usual.. Cria uma nova linha na impressão do seu programa..
Exemplo:
#include<stdio.h>
 
int main(){
Printf("\n Ola amigos da Eng. Software")
return 0;
}
	Entendem o uso do \n aqui.. Quando for imprimir o resultado na tela vai pular uma linha...
	Agora copiem e colem este código no codeblocks de vocês.. vou estar aqui esperando....
.....
Pronto? E ai?
...........
Vixe deu Pau..
	Sim amigos, aqui entramos em outro detalhe também.. o codeblocks é baseado no tal do “case insensitive”.. ou seja.. ele diferencia maiúsculo de minúscula.. Percebam que o Printf (Com P inicial maiúsculo trava o programa).. mude para “printf”... Outro erro proposital deixado aqui para o entendimento é a falta de ponto e vírgula ao final.. “;”.
Mude no codeblocks e compile no F9 e veja o resultado.
U ma coisa importante.. Aqui vocês terão dois tipos similares de linguagens C e C++. Diferencia um pouco na sua estrutura.. Mas não se preguem a eventual diferença.. Tentem entender a lógica dos passos e no programa.. Da mesma forma que é feito em portugol.. Se você tem uma lógica vc consegue transcrever para outras linguagens com pequenas alterações.
Para vocês terem uma ideia segue os seguintes exemplos comparativos..
A- VISUAL LG – PORTUGOL
algoritmo "Ola_Software"
var
inicio
 escreval("Olá amigos, Eng Software Unigran")
fimalgoritmo
B - Codeblocks – C
#include<stdio.h>
int main(){
printf("\n Ola amigos da Eng Software");
return 0;
}
C -Codeblocs – C++
#include <iostream>
 using namespace std;
 
 int main(){
 
 cout<<"\n Ola amigos da Eng. Software" <<endl;
 return 0;
Deste modo estarei abordando os exercícios em C. Conforme a necessidade vocês podem ir convertendo para C++;
EXERCICIOS BASE PARA ATIVIDADE 2:
1. Paulo foi a loja de computadores e comprou 2 Notebooks (Uau que xique né), Kraus aquiriu 3 para sua empresa. Faça um programa que imprima em cada linha o nome. 
#include <stdio.h>
#include <stdlib.h>
 
 int main(){
 
 printf("Itens vendidos: \n");
 printf("\n Cliente: Paulo - 2 notebooks");
 printf("\n Cliente Kraus - 3 notebooks");
 
system(“pause”);
return 0;
}
OBSERVAÇÕES
Observem quem para este exercício eu adicionei uma bibliteoca stlib para referenciar a função system..
Por que eu fiz isto?
Alguns compiladores, após a execução fecham a tela do sistema. Ou Seja, você vai executar a função main certinho, contudo a tela vai fechar e você não verá o que foi impresso.
Na verdade o codeblocks em si.. Permite que tenha este “pause” nos comandos, contudo é meio padronizado utilizar este system(”pause”)para transformar o código de compilação generalizada.
Observem as posições em que eu deixei o \n.. Em um local no final da impressão e em outros dois no inicio, de modo que deixei espaço entre as frases impressas na tela.. 
Copiem o código acima no codeblocks, efetuem as seguintes alterações e observem as diferenças..
Onde for:
printf("\n Cliente: Paulo - 2 notebooks");
printf("\n Cliente Kraus - 3 notebooks");
printf("\n Cliente: Paulo - \n 2 notebooks \n\n");
printf("\n Cliente Kraus - \n 3 notebooks \n\n");
 
2. Um dos alunos preparou o seguinte programa e apresentou-o para ser avaliado. Ajude-o a identificar e corrigir os erros. Copie e cole no codeblocks e observe os erros.
#include <stdio.h>MOVA OU EXCLUA ESTA CAIXA DE TEXTO PARA BAIXO PARA ABRIR A RESPOSTA
Resposta 2:
 - Ponto e virgula ( linha 2).. Após o int main deveria haver parênteses e não chaves (linha 3), além disto main deve ser minuscula. Toda funcao em C (Como a main) deve começar e terminar com chaves “{“ “}”, mas no programa começa com “(“ e termina com “)”.
#include <stdlib.h>;
int Main{ }
(
printf( Existem %d semanas no ano.,52);
system(“PAUSE“);
return 0;
)
3. O programa a seguir é correto?
main()
{
printf(“Linguagem C“);
system(“pause“);
}
MOVA OU EXCLUA ESTA CAIXA PARA VER A RESPOSTA
Resposta 3: - sim. Está correto.
Agora resolva o exercício da Atividade 2:
Utilizando a IDE Codeblocks, crie um projeto na Linguagem C que seja capaz de escrever em cada linha da tela:
 Seu nome e idade
Nome dos seus familiares e idade
Até Aqui uma informação adicional, provavelmente conforme vocês vão avançando o curso, vocês verão novas formas e resolução e trabalharam com algumas limitações.. No código 1 Aqui por exemplo o que aconteceria se mudasse os clientes ou numero de notebooks comprados??
Certamente este código não funcionaria.. Nos conteúdos posteriores vocês verão algumas formas e implementação, solicitando o nome ao usuário..
Por enquanto até aqui..Finalizamos esta aula..
----------------------------------------------------------------------
	
----------------------------------------------------------------------				
AULA 3: TIPOS DE DADOS
3.1 Definindo Variável:
	Regra geral - <tipo> <nome>
Observação: Este nome você vai escolher para a variável apenas desconsiderando as palavras reservadas ao programa.. exemplos: int, main, return, system... também é necessário que comece com um caractere pelo menos.. ou seja você pode declarar variável n1, mas não pode declarar 1n.
Entendido?
Entre os tipos mais usados tempos inteiros (int) = 
exemplos: 1,2,3,4,5,6,7,8,9,10.
Divisão(float) = 1.2, 1.5, 2.4.
Caractere (char)= a,b,c,d..
Você também deve utilizar o tipo para declaração de constantes.. Constantes serão valores fixos que você poderá usar no decorrer do seu código sem alteração..Por exemplo o valor de PI, sempre será “3,1415926536”.. A metade de um valor sempre será ele multiplicado por 0.5, ou taxas de juros por exemplo que um determinado banco utiliza sempre terá um determinado valor..
Exemplos de constantes declaradas:
const float metade= 0.5;
const float pi = 3,14..
const int a= 2;
const int A=4;
Outra forma de adicionar constantes também é com o comando #define no inicio do programa
#define true 1
#define false 0
#define media 6
Percebam que neste caso não se tem ponto e virgula após a definição da constante..
Assim:
const int A =4;
#define A 4; (Errado ponto e vírgula)
Observação importante: Lembre-se que é case insensitive, percebam que pode-se declarar uma constante ou variável com a e com A com valores diferentes e sendo variáveis diferentes.
Outra observação é que ao imprimir valores na tela precisamos mencionar o tipo dado também..
%d e %i – Representam valores inteiros;
%c- Representam um caractere (a,b,v)
%s – cadeia de caracteres (Representa palavras inteiras)
%f – representam valores com divisão ou float como vimos.
Estas informações são referentes a aula 4, mas já estou colocando como prévia para contribuir com a resolução do exercício.. Em tese aconselho a ler a aula 4 também para depois retornar e fazer o exercício da atividade 3..
VAI LÁ JOVEM LEIA A AULA 4 TAMBÉM E VOLTA AQUI...
Exercício Base lista 3..
1. Faça o programa que solicite ao usuário o raio de uma pizza e imprima o seu valor em área cm². Use a constante e considere Pi=3,14.
-- Aqui vamos iniciar a resolução pensando..
Pensem na logica: Usuario vai informar o raio O programa calcula a área Imprime a área na tela;
 
1) Entrada: -- Quais e que tipo de dados tenho?
- Precisa informar o raio: Como pode ser qualquer valor, até com casas decimais, considero que deve ser do tipo float
- Tenho a constante que é 3,14.
3) qual o dado de saída
Area, pode ser qualquer valor em casas decimais, então também do tipo float.
Resolvendo Temos..
#include <stdio.h>
#include <stdlib.h>
 
 int main()
 {
 float area, raio;
 float const Pi = 3.14;
 printf("Informe o raio da pizza em centimetros: ");
 scanf("%f", &raio);
 
 area= (Pi * raio * raio); //Pi * raio ao quadrado
 
 printf("A pizza top master da Eng computação tem area de: %2.f cm² ", area);
 
 system("pause"); 
 return 0;
 }
3. Uma fábrica controla o tempo de trabalho sem acidentes pela quantidade de dias. Faça um programa para converter este tempo em anos, meses e dias. Assuma que cada mês possui sempre 30 dias.
 #include <stdio.h>
 #include<stdlib.h> 
 
 int main(){
 
 int dias = 0;
 float meses = 0, anos = 0;
 
 printf("Digite a quantidade de dias: ");
 scanf("%d", &dias); meses = dias / 30; //Converte dias para meses;
 anos = meses / 12; // Converte os meses em anos '12 meses = 1 ano';
 
 printf("Quantidade em meses: %.1f", meses);
 printf("\nQuantidade em anos: %.1f", anos);
 //Considero que pode-se ter anos e meses quebrados exemplo: 1.40 (1 ano e 4 meses)
 
 system("pause");
 return 0;
 }
4. A granja Aves-MS possui um controle automatizado de cada frango da sua produção. No pé direito do frango há um anel com um chip de identificação e no pé esquerdo são dois anéis para indicar o tipo de alimento que ele deve consumir. Sabendo que o anel com chip custa R$4,00 e o anel de alimento custa R$3,50, faça um programa para calcular o gasto total da granja para marcar todos os seus frangos
#include<stdio.h>
#include<stdlib.h>
#include<locale.h>
 //Paulo Souza
 int main()
 {
 setlocale(LC_ALL,"portuguese");
 const float esquerdo=4.00, direito=7.00; //3.5*2
 int num;
 printf("Informe o numero de frangos: ");
 scanf("%d", &num);
 
 printf("\nPara automatização serão investidos: %8.2f Reais ", (num*esquerdo + num*direito));
 system("pause"); 
 return 0;
 }
Observações: Quando eu coloco %8.2f, quero dizer que quero um valor até 8 casas antes da virgula e dois apósa virgula.. por exemplo se o resultado der 658,932161 vai aparecer só 658,93... 
Também adicionei a biblioteca locale.h e coloquei o comando setlocale(LC_ALL,"portuguese") – assim eu posso trabalhar com acentuação nos comandos.
----------------------------------------------------------------------
Atividade referente a aula 3
Esta atividade deve ser entregue até 09 de março de 2018.
Descreva 
Qual a diferença entre variáveis e constantes.
Quais tipos básicos variáveis existem na linguagem C/C++
Crie um programa na linguagem C que realize a soma de 2 variáveis e uma constante e imprima o resultado na tela.
AULA 4
Entrada e saída de dados
	Se você seguiu as indicações estudou a aula 3 praticamente junto com a 4.. Vamos relembrar os pontos essenciais desta aula
Primeiramente vocês foram apresentados as formatos e saída ou impressão tem tela..
scanf...
Exemplo:
int n1;
printf(“Informe um numero inteiro: );
scanf(“%d”, &n1)
//Armazena o numero o tipo inteiro – Importante Você não pode esquecer de colocar o símbolo & antes da variável..
Em síntese este simbolo mostra o posicionamento da memória que vai receber tal valor informado.. (Float, int) Caso imprima sem este símbolo vai ocorrer loop infinito, pois não vai encontrar a posição de salvamento e vai fechar o sistema.
Este & é dispensado quando se trabalha com cadeia de caracteres, verão adiante...
printf....
Exemplo:
printf(“O valor de n1: %d”, n1);
Observem uma coisa, vc deve colocar o tipo dentro das aspas e depois separado por virgula o que você quer exibir..
Caso você esqueça e deixa assim:
printf(“O valor de n1: ”, n1);
o valor exibido será zero neste caso, sendo incorreto.
Outro ponto que deve ser muito bem entendido.. è que quando se trabalha com caracteres é necessário a quantificação do número de espaços para salvar na variável, funcionando como vetor.. que vocês verão posteriormente
char nome[20];
Nesta variável declara estou dizendo deixando 20 espaços na memória para salvar os caracteres que eu digitar.. sendo que por estruta e código interno o ultimo sempre será “\0” que vai determinar o fim da string, ou seja, você tem 19 espaços para digitar o que pretende e o ultimo será ocupado automaticamente. Caso vc tenha um nome de 20 caracteres serão armazenados apenas 19.
Quando for ler temos:
scanf(“%s”, nome) 
//Neste caso como cadeia de caracteres é um vetor, você não deve inserir o & (símbolo de e-comercial), pois sempre vai iniciar com a primeira posição da memoria que agrega a variável nome informalmente falando..
Em c++.. o este comando para armazenamento será.. com nome da variável e o tamanho.
cin.getline (nome, 20);
neste caso:
incluir biblioteca <string>
e using name std; 
Lembre-se disto se foram resolver a Atividade 8 em c++.. Mas até lá retornaremos neste assunto:
Exercicios base aula 4
Com os novos conhecimentos adquiridos vamos retornar a resolver o exercício um da aula 2;
1. Paulo foia loja de computadores e comprou 2 Notebooks (Uau que xique né), Kraus aquiriu 3 para sua empresa. Faça um programa que imprima em cada linha o nome. 
#include <stdio.h>
#include <stdlib.h>
 
 int main(){
 
 printf("Itens vendidos: \n");
 printf("\n Cliente: Paulo - 2 notebooks");
 printf("\n Cliente Kraus - 3 notebooks");
 
system(“pause”);
return 0;
}
Lembram que tínhamos o problema dos clientes e quantidades serem fixas..? Vamos tentar melhorar..?
Agora, supondo que cada notebook era vendido no valor de 1.500 reais. Desta vez Reescreva este programa de forma que a loja informe o nome dos dois clientes e o numero de notebooks comprados e seja exibido na tela.. Nome, quantidade de notebooks adquiridos, e valor total da compra a ser paga por cada usuário.
EITAAAAA..... BATE DESESPERO NÃO GENTE.. MAMÃO Com Açúcar pra vocês..
Vamos entender a ideia:
Entrada: Nomes dos 2 clientes, a quantidade de notebooks adquiriu 
Calculos: Somar valor da venda
Saida: Nome, nº e notebooks e valor total por usuário 
 #include<stdio.h>
 #include<stdio.h >
 #include <locale.h>
 int main()
 {
 
 
 setlocale(LC_ALL,"portuguese");
 //Vou colocar variavel para receber o nome dos clientes
 char cliente_a[20], cliente_b[20]; 
//Outra variavel receber a quantidade de equipamentos
 int quant_a,quant_b;
 //E outra para o valor a ser pago de acordo com o numero de
 //notebooks
 float total_a,total_b;
 
 //criar uma constante para o valor dos notebooks
 int const valor_note= 1500.00;
 
 //Vamos iniciar as perguntas para o Cliente A
 
 printf("Informe o nome do cliente A: ");
 //Lembre-se que como é cadeia de caracteres
 //nao tem o & no scanf de %s
 scanf("%s", cliente_a);
 printf("Informe a quantidade de notebooks do cliente A: ");
 //Aqui é um valor inteiro entao tem-se o ponteiro & (e-comercial)
 scanf("%d", &quant_a); 
 //Bora Colocar no sistema os dados do cliente B
 printf("Informe o nome do cliente B: ");
 scanf("%s \n", cliente_b);
 printf("Informe a quantidade de notebooks do cliente B: ");
 scanf("%d", &quant_b);
 
 //agora vamos calcular os totais
 total_a= quant_a * valor_note;
 total_b= quant_b * valor_note;
 
 //Agora imprimir jovens:
 printf(" \n Cliente A: %s - Quantidade Notebooks: %d - Valor total: %2.f Reais \n", cliente_a, quant_a, total_a);
 printf(" \n Cliente B: %s - Quantidade Notebooks: %d - Valor total: %2.f Reais \n ", cliente_b, quant_b, total_b);
 
 system("pause");
 return 0;
 }
 
QUE BACANA ESTÁ FICANDO ESTE EXERCÍCIO PESSOAL.. E SAIBAM QUE TEM MAIS ALGUNS DETALHES QUE AINDA VAMOS RETORNAR E MELHORAR.. já quase da para vender né??
Hehe
PARTIMOS PARA OUTRAS ATIVIDADES BASE:
Agora o Seguinte.. Aqui vejo a mesmo problema da aula anterior.. A atividade 2 da aula 4 basicamente precisa do if else a aula 5.. 
Então, vamos fazer o seguinte.. Vamos passar para aula 5 e depois fazemos exercícios de ambas juntas, ok.
Vamos lá então..
----------------------------------------------------------------------
AULA 5: Estruturas de repetição
	Neste capitulo, temos apresentação de um dos “braços” mais usuais da linguagem de programação e que estão sempre presentes em meio as programações que se alteram com variação de outros fatores...
Exemplo desta lógica:
Se você vai dirigir = Não beba
Se você não vai dirigir = Ai meus colegas, pode virar o copo hahah
Esta midiática ideia ilustra os diferentes exemplos de tomadas de decisão que encontramos na programação:
- Se fulano tira 7 é aprovado, se a nota for menor ele entra em outras condições é reprovado ou tem exame;
- Se o funcionário tem determinado cargo y, salário dele é x + percentual de cargo y..
Entre outras milhares de situações..
Deste conteúdo precisamos ter claro em mente os valores relacionais e lógicos:
Esses operadores OU e E devem ser sempre usados
entre duas expressões relacionais como, por exemplo:
((2 > 1) || (3 < 7)): resultado VERDADEIRO Aqui colocamos duas situações, 2 é maior que 1 e 3 é menor que 7... isto é verdadeiro.. em programação podemos efetuar determinados comandos se estas duas hipóteses forem verdadeiras.
 ((3 < 2) && (2 == 2)): resultado FALSO Aqui são duas situações, 3 não é menor que 2(falso) e 2 é igual a 2.. Se o comando fosse que realizaria uma soma se as duas condições fossem favoráveis (verdadeiras) neste caso não seria executado tal comando..
((5 ! = 0) || (1 < 2)): resultado VERDADEIRO ---- Aqui tem a condição ou (II) ou seja – se apenas um ou os dois forem favoráveis a data situação (verdadeira) o resultado desta relação será verdadeiro.. SE um ou o outro for verdade os comandos seguintes serão realizados.. Nesta ideia.
5.1 IF else
	If é relativo ao português “Se” e else ao “senão”. Em prática é avaliado uma situação. Se ela é verdadeira faz um comano senão outro..
Dificil entender??
	Vamos ao exemplo prático notas.. Vamos considerar uma universidade que aceita apenas aprovado ou reprovado.. (não tem exame) e tem média 7. O aluno quer verificar se foi aprovado ou reprovado.
	Vamos supor uma variável nota que agrega a média o aluno..
int nota;
	A lógica de base do programa seria.
	If (nota >= 7)
	printf(“Aprovado”)
	else
	printf(“reprovado”);
	
	Entenderam?
		Se(if) nota for maior ou igual (Reparem como é escrito >=, maior vem antes do igual) o aluno é aprovado.. senão(else), ai entra na outra condição reprovado.
A mesma lógica é utilizada comparando-se dois números
A= 5 e B=2
Exemplo:
Int A=5, B=2;
If (A>B)
	printf(“A maior que B”);
else
	(“A Menor que B”);
	Então aqui poderemos ter duas situações.. Uma em que o maior valor seja A e outra se o maior valor for B. vamos desconsiderar por enquanto se o valor for igual..
	Percebam que no else eu não precisei colocar a outra situação.. São apenas duas comparações se A não for maior que A.. Ele já vai imprimir a outra mensagem.. Não vai precisar comparar de novo a outra situação(B>A.. Entederam?
Ahh Paulo.. Mas se o valor for igual... Tá ta bom meu povo.. vocês me convenceram.. no caso quando não atende o primeiro critério já entra no else.. dentro deste else podemos colocar outras duas situações.. se for igual e quando A não for maior que b..
Assim:
Int A=5, B=2;
If (A>B){
	printf(“A maior que B”);
}
else {if (A==B)
		printf(“B igual a A”);
		else
		printf(“A menor que B”);
Vejam que no inicio temos 3 possibilidade: aqui....Testa a primeira condição (A>B) Caso não seja então entra no else(senão).. agora, dentro deste else.. e testa-se uma delas (A==B)Caso não seja, ai só vai restar a ultima opção em que “A seja menor que B”, por isto já imprime esta mensagem..
Conforme forem resolvendo exercícios irá clareando na mente de vocês..
5.2 Case switch
	Caso (case) escolha (switch) tal opção....(comando)..
	A lógica do case é dar suporte a comandos que precisem de dados pré-determinados..
	Para melhor entender, vejam esta ilustração hipotética no quadro abaixo:
	Numero
	Cargo
	Valor comissão
	1
	Gerente
	25%
	2
	Administrativo
	10%
	3
	Secretaria
	5%
	4
	Serviços Gerais
	2%
	O quadro é de comissão de uma empresa fictícia, reparem que de acordo com o cargo determinado por uma numeração o funcionário recebe um percentual de comissão.
Bacana né? Vamos pensar em um exercício nesta lógica..
	Imagine que o valor de vendas desta empresa é de 3.500 Reais certo e a comissão é dado deste valor. Faça um programa que vai pedir ao usuário informar o cargo e imprimir na tela o valor da comissão.
Entao:
Entrada no programa: 
Vai responder a pergunta: Qual cargo? 1,2,3 ou 4.
Saida do Programa: Vai mostrar o Valor da comissão
	
 #include<stdio.h>
 #include<stdlib.h>
 #include<locale.h>
 
 //Paulo Souza
 int main()
 {
 setlocale(LC_ALL,"portuguese");
 int op; //op = opcao
 float comissao=0, vendas;
 printf("Informe o valor em vendas: ");
 scanf("%f", &vendas);printf("\n Funcionários:\n 1 - Gerente\n 2 - Administrativo\n 3 - Secretaria\n 4 - Serviços Gerais\n");
 printf("Informe o cargo: ");
 scanf("%d", &op);
 switch(op)
 {
 case 1:
 
 comissao= vendas*0.25;
 break;
 
 case 2:
 comissao= vendas*0.10;
 break;
 
 case 3:
 comissao= vendas*0.05;
 break;
 
 case 4:
 comissao= vendas*0.02;
 break;
 
 printf("\n\n A comissão do funcionário será %2.f \n", comissao);
 
 }
	Copie e cole estes comandos no seu codeblocks
	O que foi feito neste exercício.. Estou informando a renda na qual será contabilizado a comissão (3500.00 neste caso), depois declaro uma variável “op” do tipo inteiro que vai receber a opção de cargo.. depois a escolha vai para escolha – switch (op).. Ai entra nos case..
 case 1: Ou seja caso a opção seja 1 relativo a gerente a comissão será o valor de vendas *0.25 ou seja 25%.
Segue a mesma lógica para os demais exercícios;
GENTE PARAAA TUDOOO!! Aqui temos uma informação importante e que muito facilita os erros na prova hem.. 
Percebam o “break” em cada caso..
Ele é relativo a um tipo de encerramento das comparações.. Sem ele.. mesmo que o usuário digite a opção 1 para o cargo.. o programa vai correr TODAS as opções de cargo e efetuar os cálculos.. 
Quando adicionamos o break.. 
case 1:
 
 comissao= vendas*0.25;
 break;
	Como neste caso ele faz a leitura do cargo, faz o calculo da comissão, chega no break e para as comparações.. e já finaliza imprimindo na tela.. Não tem sobre uso do sistema com comparações indevidas. forçando o programa a voltar para sua execução normal. Em alguns casos com operações matemática o não uso pode ser utilizado, por conta de atribuições de variáveis, mas isto é em casos bem restritos que não acredito necessário abordagem aqui.. ok..
Outra informação interessante.. é o cuidado que temos que ter com inicialização de variáveis.. quando eu digo inicialização e variáveis quero dizer ao valor inicial de partida da variável..
No caso antes de calcular atribuímos a variável comissão o valor zero(comissão=0). A importância disto é evitar o chamado “lixo de memória”, pois a variável sem valor recebe valores da memória... 
Exemplos= sem inicialização no meu sistema comissão apresentava o valor 5695232.. que seria digamos “sobra” de outras operações realizadas.
Neste exercício ainda não é observado este efeito pois depois receberá diretamente o valor da comissão multiplicado. Contudo, em outros exercícios que parte de um salário inicial + comissão—exemplo: salario_novo = salario_antigo + (salario antigo*comissão)... o sistema apresentara erro sem inicialização.. Como forma padrão variáveis que não estão sendo lidas no scanf são inicializadas com algum valor(zero na grande maioria das vezes).
UAU quanta informação.... 
Que tal dar uma pausa para relaxar hem?
----------------------------------------------------------------------
Vamos para os exercícios..
Agora primeiramente vamos
Resolver exercícios relacionados da lista 4
1. Leia um número e se ele for maior do que 20, então imprimir a metade do número.
#include<stdio.h>
 #include<stdlib.h>
 #include<locale.h>
 //Paulo Souza
 int main()
 {
 setlocale(LC_ALL,"portuguese");
 int num;
 float metade; /* dados de entrada */
 printf("Digite o primeiro numero: ");
 scanf("%d", &num);
 metade=(num/2);
 if(num>20)
 printf("\nO valor informado %d dé maior que 20, sua metade é %8.2f\n ", num, metade);
 else
 printf("\nO valor é %d menor que 20 - Não realizou-se divisão \n", num);
 system("pause");
 return 0;
 }
 
2. Leia um número e escreva se ele é múltiplo de 3 ou não. 
	Observação: Como se sabe se é múltiplo de 3? – Quanto ocorre uma divisão exata certo, sem sobra de inteiros.. exemplo 9 é múltiplo de 3, 8 não é múltiplo de 3.
	Em c quando se compara 2 valores com o % percentual exemplo x = a%b... o percentual significa que quero o que for sobrar da divisão.
Exemplo x = 10%3;
Qual o valor de x?
	Neste caso x é igual a 1.. Pois nesta conta 9 é divisão perfeita de 3 e sobra 1 que não é divisível.
Exemplo x = 8%3;
Qual o valor de x?
	X vai ser igual a 2.. pois 6 divide igualmente por 3 e sobra 2 desta divisão.
Então pare e pensa.. quando sabemos que o número é múltiplo?
Resposta: quando x for igual a zero.
 X=9%3; 9 é múltiplo de 3,pois x é igual a zero..
Desta forma para resolver este exercício colocamos um if comparando a sobra a divisão do numero informado com 3..
If (num%3==0)
Assim:
 #include<stdio.h>
 #include<stdlib.h>
 #include<locale.h>
 //Paulo Souza
 int main()
 {
 setlocale(LC_ALL,"portuguese");
 int num;
 float metade; /* dados de entrada */
 printf("Digite o primeiro numero: ");
 scanf("%d", &num); 
 if(num%3==0)
 printf("\n O valor informado é divisivel por 3! \n\n");
 else
 printf("\nO valor informado não é divisão perfeita por 3! \n\n");
 system("pause");
 return 0;
 }
A mesma ideia de sobra para encontrar número múltiplo usamos para encontrar números pares. Exemplo abaixo:
3. Leia um número inteiro de 3 algarismos e escreva se o algarismo da casa da centena é par ou ímpar. 
 #include<stdio.h>
 #include<stdlib.h>
 #include<locale.h>
 //Paulo Souza
 int main()
 {
 setlocale(LC_ALL,"portuguese");
 int num, aux;
 /* dados de entrada */
 printf("Digite um numero inteiro de 3 algarismos: ");
 scanf("%i", &num);
 aux=(num/100);
 if(aux%2==0)
 printf("\nO numero é par");
 else
 printf("\nO numero é impar");
 
 system("pause");
 return 0;
 }
 Aqui a variável num recebeu o valor de 3 casas decimais..
 aux=(num/100) aux recebeu o valor da divisão.
AQUI OUTRO PONTO MUITO IMPORTANTE...E SEMPRE ESTÁ PRESENTE EM PROVAS..
Por exemplo se o cara digitar 350.. 350/100 vai ser igual a 3.5 e ai vai dar certo o calculo?
VAI.. A lógica deste exercício é você declarar o valor do auxiliar que vai receber a centena como inteiro... ai independente do resultado da divisão vai armazenar apenas o primeiro número.. LEGAL né?? Neste caso quando digito 350.. a variável vai armazenar o 3 da divisão e descartar o 0.5;;
Ai você encontra o valor da centena..
(Informação adiciona) Em resumo para calcular as casas demais
 centenas = num / 100; 
//O que sobrar depois que tiramos as centenas, são as dezenas
dezenas = (num%100) / 10;
//O que sobrar depois que tiramos as centenas e dezenas são as unidades
unidades = ((num%100)%10);
assim:
 centena=n/100;
 dezena=n%100;
 dezena=d/10;
 unidade=d%10;
 
3. Leia os pontos obtidos por 3 jogadores de uma equipe e escreva esses valores em ordem decrescente, use auxiliar. Além disso, se a soma dos pontos for maior do que 100, escreva a média aritmética dos pontos; senão, escreva a mensagem “Equipe desclassificada”.
 #include<stdio.h>
 #include<stdlib.h>
 #include<locale.h>
 //Paulo Souza
 int main()
 {
 setlocale(LC_ALL,"portuguese");
 int j1, j2, j3, soma, aux;
 float media;
 printf("Informe os pontos do primeiro jogador - J1: ");
 scanf("%d", &j1);
 printf("Informe os pontos do primeiro jogador - J2: ");
 scanf("%d", &j2);
 printf("Informe os pontos do primeiro jogador - J3: ");
 scanf("%d", &j3);
 if(j1<j2)
 {
 aux=j1;
 j1=j2;
 j2=aux;
 }
 if(j1<j3){
 aux=j1;
 j1=j3;
 j3=x;
 }
 if(j2<j3){
 aux=j2;
 j2=j3;
 j3=aux;
 }
 printf("\nPontuação em ordem decrescente - %d - %d -%d \n", j1, j2, j3);
 soma=j1+j2+j3;
 media= soma/3;
 if (soma <100 )
 printf("\nEquipe desclassificada");
 else
 printf("\nMedia de pontuação: %5.2f \n", media);
 system("pause");
 return 0;
 }
4. A granja Aves-MS possui um controle automatizado de cada frango da sua produção. No pé direito do frango há um anel com um chip de identificação e no pé esquerdo são dois anéis para indicar o tipo de alimento que ele deve consumir. Sabendo que o anel com chip custa R$4,00 e o anel de alimento custa R$3,50, faça um programa para calcular o gasto total da granja para marcar todos os seus frangos.
 #include<stdio.h>
 #include<stdlib.h>
 #include<locale.h>
 //Paulo Souza
 int main()
 {
 setlocale(LC_ALL,"portuguese");
 const float esquerdo=4.00, direito=7.00; //3.5*2
 int num;
 printf("Informe o numero de frangos: ");
 scanf("%d", &num);
 
 printf("\nPara automatização serão investidos: %8.2f Reais ", (num*esquerdo + num*direito));
 system("pause");
 return 0;
 }
----------------------------------------------------------------------
lista 5
1. Faça um programa que receba um valor do usuário e mostra se o mesmo é par ou impar e negativo ou positivo.
 #include <stdio.h>
 #include <stdlib.h>
 
 int main()
 {
 int num;
 
 /* Obtem um numero do usuario */
 printf("Entre com um inteiro: ");
 scanf("%d", &num);
 
 /* Imprime uma mensagem dizendo se o numero e positivo ou
 negativo, positivo ou negativo. */
 if (num >= 0){ //É positivo?
 if (num % 2 == 0) //se a sobra for igual 0--> par
 printf("O numero e par e positivo\n");
 else
 printf("O numero e impar e positivo\n");
 }
 else {
 if (num % 2 == 0) //se a sobra for igual 0--> par
 printf("O numero e par e negativo\n");
 else
 printf("O numero e impar e negativo\n");
 }
 system("pause");
 return 0
 }
2. Faça um programa que informe a nota media de um aluno e sua frequência. Se a nota for maior que 6 e frequência maior que 75% Aprovado. Se a Nota for maior que 4 e menor que 6 = Exame ou recuperação. Se frequência menor que 75% ou media menor que 4 Aluno reprovado.
 #include<stdio.h>
 #include<stdlib.h>
 #include <locale.h>
 
 int main() {
 
 float media;
 int frequencia;
 setlocale(LC_ALL,"portuguese"); 
 printf( "Receba a media do aluno\n" );
 scanf( "%f", &media);
 printf( "Digite a frequencia:\n" );
 scanf( "%d", &frequencia );
 
 if ( media >= 6.0 ) {
 
 if ( frequencia >= 75 )
 printf( "Aluno aprovado!" );
 else
 printf( "Aluno reprovado!" );
 }
 
 if ( media < 6.0 ) {
 
 if ( frequencia >= 75 && media >=4.0)
 printf( "Aluno de recuperação" );
 else
 printf( "Aluno reprovado!" );
 } system("pause");
 return 0;
 }
3. Faça um programa que informe um numero de 1 a 7 representando os dias da semana.. 1- Domingo....7-Sabado, demais valores são desconsiderados. Utilize case switch.
 #include<stdio.h>
 #include<stdlib.h>
 int main ()
 {
 int valor;
 printf ("Digite um valor de 1 a 7: ");
 scanf("%d", &valor);
 
 switch (valor)
 {
 case 1 :
 printf ("Domingo\n");
 break;
 
 case 2 :
 printf ("Segunda\n");
 break;
 
 case 3 :
 printf ("Terça\n");
 break;
 
 case 4 :
 printf ("Quarta\n");
 break;
 
 case 5 :
 printf ("Quinta\n");
 break;
 
 case 6 :
 printf ("Sexta\n");
 break;
 
 case 7 :
 printf ("Sabado\n");
 break;
 
 default :
 printf ("Valor invalido!\n");
 }
 system("pause");
 return 0;
 }
Observação: A opção “default” no final. Considera opções diferentes das com case.. ou seja se for digitado valor acima de 7.. imprime “valor invalido”.
----------------------------------------------------------------------
			
					Aula 6
For.. do while.. incremento.... Imagino que vocês tenham chegado até aqui com aquele medo.. 
Fiquem tranquilos amigos..	Pode parecer difícil mas conforme os exercícios práticos vocês entenderam que é muitoooo simples..
Vamos lá...
Vou considerar que vocês tenham lido toda aula 6. Irei desconsiderar boa parte da teoria e entrar no esquema prático, ok?
Apenas quero relembrar do por que utilizar os laços de repetição.. 
Imagine por exemplo, um sistema que calcule se o aluno é aprovado ou não de acordo com a média.. Uma sala tem inúmeros alunos, e até o ultimo aluno receber a nota o sistema precisa solicitar que o usuário informe a nota.. 
	Este é um exemplo dos inúmeros casos que usamos laços de repetição.
Vamos começar com for
	Em síntese o for trabalha em 3 etapas, 1: recebe o valor de ínicio, 2: Testa uma condição que se verdadeira continua no laço e 3: incrementa um contador?
Esta difícil assim né?
	
	Vamos pegar a estrutura exemplo:
	Int cont, limite=10;
	
	For(cont=0; cont <=10; cont++)
		{
			Printf(“%d”, cont);
		}
	
Aqui declarei uma variável cont que será o contador do laço, e o limite do laço que recebe 10.
I=0 Nesta parte indico o ponto de inicio do meu contador, aqui especifiquei zero.. 
I<=0 A segunda parte é até quando meu laço vai correr, e até quando os comandos serão executados até 10..
Cont++ Aqui eu incremento o contador..
	O printf foi colocado de modo a imprimir o valor do contador em cada vez passada no laço 
	
	Vai começar o laço assim:
	1º Vez... 
cont=0 - cont inicia com 0 
analisa a codição cont <=10… Sim é.. zero é menor que 10.. Entao vai rodar o laço novamente.
No final o contador recebe seu valor atual adicionao a +1, seria o cont++.
2º Vez... Continua laço, agora o contador é igual a 1;
cont=1 - cont inicia com 0 
analisa a codição cont <=10… Sim é.. zero é menor que 10.. Entao vai rodar o laço novamente.
No final o contador recebe seu valor atual adicionao a +1, seria o cont++.
3º Vez..... Aqui o contador já tem o valor de 2.. Cont = 3
		Este laço vai acontecer até que o contador atinja valor superior a 10, ou seja 11.
Vamos para um exemplo prático..
	Exemplo 1: Escreva um programa que receba nota de 10 alunos e ao final mostra a média da classe..
	Vamos entender a lógica.. Serão solicitados então nota de 10 alunos.. vamos fazer isto usando o for, ao ser digitado a décima nota.. limite do for vai ser impressa a média da sala..
	O que eu faço nestes casos que precise de média.. é somar todas as notas e dividir pelo número de alunos, no caso 10.. Então cada vez que passar o laço uma variável soma vai receber o seu valor atual + a nova nota..
Vou mostrar na prática para esclarecer.
 #include<stdio.h>
 #include<stdlib.h>
 
//Escreva um programa que receba nota de 10 alunos e ao final mostra a //média da classe
 int main(){
 int i;
 float nota, soma=0, media=0;
 for(i=1; i<=10; i++)
 {
 printf("Informe a nota do %dº aluno: ", i);
 scanf("%f", &nota);
 soma = soma + nota;
 
 }
 media= soma/10;
 printf("\n A media da classe e: %2.f \n", media);
}
Copie o código acima e execute no codeblocks.
Exemplo de funcionamento o laço, considere todas notas 9.0
	Contador (i)
	Condicao (i <=10)
	Nota informada
	Soma (=0 no inicio)
	1
	Verdadeira - continua
	9.0
	9.0
	2
	Verdadeira - continua
	9.0
	18.00
	3
	Verdadeira - continua
	9.0
	24.00
	4
	Verdadeira - continua
	9.0
	36.00
	5
	Verdadeira - continua
	9.0
	45.00
	6
	Verdadeira - continua
	9.0
	54.00
	7
	Verdadeira - continua
	9.0
	63.00
	8
	Verdadeira - continua
	9.0
	72.00
	9
	Verdadeira - continua
	9.0
	81.00
	10
	Verdadeira - continua
	9.0
	90.00
	11
	Falsa – sai o laço
	-- Sem nota
	90.00
	Ao sair do laço media= soma/10 (90/10)—Imprime media= 9.0
Legal né? Viram como na prática fica super interessante??
	Em resumo você vai informar notasaté chegar ao aluno 10.. Após isto vai sair do laço, pegar o valor agregado em soma e contabilizar a média...
Gente.. Tenham certeza que entenderão estes passos? Qualquer coisa da uma revisada novamente. Estes passos são muitos utilizados em C.
Vamos para outra estrutura de repetição o While.. ou no nosso português..
Enquanto
 WHILE
	While é uma estrutura de repetição que vai atuar no laço enquanto determinada condição for verdadeira...
EI.. Sem crise... sem desespero galera.. vamos entender isto..
Analisem este trecho:
	float num;	
	printf(“Informe um numero: ”);
	scanf(“%f”, &num);
	
	while(num >=0){
		printf(“O valor é positivo”);
		printf(“Informe um numero: ”);
	 scanf(“%f”, &num);
	}
O que faz este trecho? 
Inicialmente é informado um valor que é armazenado em num.. Ai este valor entra no laço while.. Se este valor é maior ou igual a zero... while(num >=0).. Imprime na tela o valor é positivo.. Quando for negativo vai sair do laço.
Aqui deixo uma observação muito importante...
O que basicamente diferencia o While do For.. 
Eu poderia usar while para calcular as notas como o exercício anterior?
Vamos analisar..
Int cont;
float num=10, soma, media;
	while(num <10 && num>0){
		printf(“ Infrome uma nota: ”);
	 scanf(“%f”, &nota);
		soma= soma + nota;
cont--;
	}
Media = soma/10;
	Vejam só.. Você consegue sim elaborar um exercício de repetição inserindo notas no while.. Mas o CONCEITO DE PROGRAMAÇÃO É ERRADO.. Não faça o exercício acima, use for..
Quase todos exercícios que se faz com For, também podem ser feitos com while, mas alguns professores cobram a lógica de usar um ou outro. Consideram errado o conceito.
MAS COMO DIFERENCIAR? :-0
WHILE – Quando você não sabe o limite de contador usa-se while.. Por exemplo: você não sabe quantas notas irá lançar, Ou como no caso de verificar se o numero é positivo... Você não vai saber quando o usuário vai digitar um numero negativo e sair do programa.. Observem novamente o trecho como abaixo.. o usuário poderá digitar quantos números quiser.. você não sabe o limite.
while(num >=0){
		printf(“O valor é positivo”);
		printf(“Informe um numero: ”);
	 scanf(“%f”, &num);
	}
FOR – Quano o seu laço tem um limite ou um ponto de conclusão obrigatoriamente deve usar for... Exemplo Inserir notas de 10 alunos, imprimir números de 1 a 100.. Enfim, sempre quando você tiver referência de finalização usa-se for...
AH PAULO.. MAS É FÀCIL ASSIM MESMO?? Não é possível. Sim meus amigos.. Tranquilo...
TEMOS MAIS UMA ESTRUTURA DE REPETIÇÃO..DO WHILE.. 
DO WHILE: Do while segue o mesmo conceito do While, você não saberá o momento exato que o programa será finalizado.. A diferença neste caso é que você precisa efetuar algum calculo ou precise de alguma informação prévia ao laço ou seja você precisa pelo menos uma vez informar algum valor do laço..
Esta opção é muito utilizada quando se trabalha com algum tipo de menu que antecede operações..
Vamos a um exemplo:
Exemplo 2: Faça um programa que usuário forneça valores para ser convertidos e que o usuário escolha entre km/h para ms/s ou ms/km. O programa é finalizado quando o usuário digitar 3.
	Aqui vou usar o do while.. Antes de pedir o valor a ser convertido, pelo menos uma vez o usuário irá escolher no menu a conversão que vai querer fazer.. se for 1 – km/h para m/s, se for 2 ms/s para km/h.
	Se a opção informada (n) for igual a 1.. pede um valor para conversão e divide este por 3,6.. se a opção for 2.. solicita um numero e multiplica por 3.6
Assim: 
 #include <stdio.h>
 #include <stdlib.h>
 
 
 int main()
 {
 float velo, res;
 int n;
 do
 {
 printf("Digite o número da opcao deseja: \n");
 printf("1- Converter km/h para m/s: \n2- Converter m/s para km/h\n 3- Finalizar\n");
 scanf("%d", & n);
 if(n==1)
 {
 printf("Digite a velocidade a ser convertida:\n");
 scanf("%f", &velo);
 res=velo/3.6;
 printf("%.2f km/h corresponde a %.2f m/s", velo, res);
 
 }
 if(n==2)
 {
 printf("Digite a velocidade a ser convertida:\n");
 scanf("%f", &velo);
 res=velo*3.6;
 printf("%.2f m/s corresponde a %.2f km/h", velo, res);
 
 }
 if(n<1 || n>3)
 printf("Opcao Inválida!");
 }while (n!=3);
 system("pause");
 return 0;
 }
LISTA de EXERCICIOS BASE AULAS e ATIVIDADE 5
1. Imprima todos os números de 1 a 100.
 #include<stdio.h>
 #include<stdlib.h>
 
 int main()
 
 {
 int i;
 for(i=1; i<=100; i++)
 printf("%d\n", i);
 
 system("pause");
 return 0;
 
 }
2. Imprima todos os múltiplos de 5 no intervalo de 1 a 500. 
 #include<stdio.h>
 #include<stdlib.h>
 
 int main()
 
 {
 int i;
 for(i=1; i<=500; i++)
 {
 if (i%5==0)
 {
 printf("%d\n", i);
 }
 }
 system("pause");
 return 0;
 
 }
3. Imprimir as tabuadas de multiplicar de 1 até 10.
 #include<stdio.h>
 #include<stdlib.h>
 
 int main()
 {
 int x, y, z=0;
 printf("Tabuada de 1 a 10: \n");
 for(x=1; x<=10;x++)
 {
 for(y=1; y<=10; y++)
 {
 z= x * y;
 printf("\n%d X %d = %d", x, y, z);
 }
 }
 printf("\n");
 system("pause");
 return 0;
}
4. Escrever um programa que leia, valores inteiros, até ser lido o valor-99. Quando isso acontecer o programa deverá escrever a soma e a média dos valores lidos.
 #include<stdio.h>
 #include<stdlib.h>
 #include<string.h>
 int main()
 {
 int num, soma=0;
 float media=0, cont=0;
 printf("\n DIGITE UM NUMERO INTEIRO: ");
 scanf("%d",&num);
 while(num!=-99)
 {
 soma=soma+num;
 cont++;
 printf("\n DIGITE UM NUMERO INTEIRO: ");
 scanf("%d",&num);
 }
 media=soma/cont;
 printf("\n\n A soma dos numeros e: %d ",soma);
 printf("\n\n A media dos numeros e: %3.2f ",media);
 printf("\n\n");
 system("pause");
 return(0);
 }
 
------------------------------------------------------------------------------------------------------
AULA 7
	
A aula mostrou o trabalho uma forma de representação de dados homogêneos.. 
O que seria isto?
Em síntese quando você trabalha vários dados do mesmo tipo.. por exemplo: 10 notas o tipo float, 20 números do tipo inteiro...
E você precisa armazenar, então usamos vetores e matrizes que reservam espaço na memória para armazenar os vetores..
Olhem o esquema abaixo... SIM eu sei está feio Pakas.. fiz no excel mesmo kakak.. mas enfim..
	Vetor
	
	
	
	
	
	
	
	
	
	
	
	
	
	Indice
	v[0]
	v[1]
	v[2]
	v[3]
	v[4]
	v[5]
	valores exemplo
	5
	10
	15
	20
	25
	30
	
	
	
	
	
	
	
	Matriz
	
	
	
	
	
	
	
	colunas
	
	
	
	
	
	linhas
	0
	1
	2
	3
	
	
	0
	[0,0]
	[0,1]
	[0,2]
	[0,3]
	
	
	1
	[1,0]
	[1,1]
	[1,2]
	[1,3]
	
	
	2
	[2,0]
	[2,1]
	[2,2]
	[2,3]
	
	
	3
	[3,0]
	[3,1]
	[3,2]
	[3,3]
	
	
	
	
	
	
	
	
	
Para vc declarar um vetor você segue a linha <tipo> <nome>[tamanho]
Exemplo: float notas[10];
Aqui o meu programa entende que vai reservar um número de 10 espaços na memória para armazenamento de notas... os espaços reservados serão
notas[0] = 9.0 
notas[1] = 8.0
notas[2] =5.0
notas[3]= 4.0
notas[4]= 3.0
notas[5]=8.0
notas[6]= 5.5
notas[7]=6.0
notas[8]=7.0
notas[9]=6.0
notas[10] = \0
Percebam que estou atribuindo notas ao vetor e cada espaço é capaz de armazenas um vetor... MAS ESPERA... Tem algo errado.. Vamos contar de novo.. Eu quero 10 Notas.. Mas temos 11 espaços não?? :-0.. do notas[0] até o notas[10].. São 11 espaços..Mas fiquem tranquilos é assim mesmo.. Em vetores e matrizes o índice termina com zero e o ultimo índice do conjunto, neste caso notas[10] recebe o termo “\0”, isto indica que chegou ao final do vetor...
As matrizes também são semelhantes, mas no caso o valor estará armazenado em um plano que considera linhas e colunas..
Matriz[linha], [coluna]..
Retornando ao esquem abaixo.. percebam que se trata de uma matriz 4x4.. Mas Paulo os números só vão até 3?? Não seria 3x3..?
	Matriz exemplo: 
float notas[4,4]
	
	
	
	
	
	
	colunas
	
	
	
	
	linhas
	0
	1
	2
	3
	
	0
	[0,0]=9.0
	[0,1]=4.0
	[0,2]=5.0
	[0,3]=4.0
	
	1
	[1,0]= 5.0
	[1,1]= 2.0
	[1,2]=7.0
	[1,3]=7.0
	
	2
	[2,0]= 7.0
	[2,1]= 9.0
	[2,2]=8.0
	[2,3]=5.0
	
	3
	[3,0]=5.0
	[3,1]=8.0
	[3,2]=5.0
	[3,3]=6.0
	
Não jovens, reparem novamente que o índice assim como vetor inicia por 0.. sendo o primeiro valor que vc digitar armazenando na matriz de linha 0 e coluna 0.
Percebam que coloquei na matriz notas[0,0] armazenei o valor 9.0, já em notas[0,1] (linha zero e coluna 1) tem-se a nota 4.0
Deu para entender??
Agora vamos para uma parte interessante?
Como percorrer estes espaços para armazenar estes valores?
Aqui entram as estruturas de repetição.. amigos... TOPPPPPPP!
Na maioria das vezes usamos o “for”.. criamos um contador até o limite do tamanho do vetor e fazemos percorrer os campos..
Vamos a um exemplo: O que faz o programa abaixo:
 
#include<stdio.h>
 #include<stdlib.h>
 
 int main()
 {
 float notas[4], soma=0, media=0;
 int contador;
 for(contador = 0; contador < 4; contador++){
 printf("Informe uma nota: ");
 scanf("%f", &notas[contador]);
 soma= soma + notas[contador];
 }
 media = soma/4;
 printf("\n A media de notas e: %f", media);
 // Ao sair do laço
 	system("pause");
return 0;
 }
 - -Copiem e Executem no codeblocks;
-- Aqui eu declarei o vetor notas de tamanho 4 e do tipo float float notas[4] 
Para informar notas de quatro alunos.. 
-- Também uma variável soma e media para agregar o valor das notas.. Como já foi feito em exercícios anteriores.
-- declarei um contador que vai aumentar dentro do for..
-- for(contador = 0; contador < 4; contador++){
 printf("Informe uma nota: ");
 scanf("%f", &notas[contador]);
 soma= soma + notas[contador];
Neste trecho acima eu estou dizendo, meu contador vai começar com zero e vai ir até o valor menor que 4... (Por que menor que 4? Pois o vetor começa com zero e indo até 3, teremos os quatro espaços para inserir notas (0,1,2,3) – Ao final de verificar a condição contador é menor que 4.. o contador acrescenta e entra no laço de novo.. 
Enquanto ele estiver no laço vai imprimir na tela.. “Informe uma nota:”.. esta nota vai ser salva no vetor... na primeira vez quando contador for igual a zero.. vai ser salvo em notas[0], depois quando contador for igual a 1.. vai ser salvo em notas[1], e assim sucessivamente.
As notas serão somadas na variável soma e ao final quando sair do laço vai dividir soma pelo total de elementos e imprimir a media.
MUITO BACANA NÉ?
E quando for matriz que tem linhas e colunas?
	Neste caso, usamos 2 “for” percorrendo linhas e colunas.
Exemplo: Faça um programa para informar a nota de 16 alunos, ao final mostre a média de toda turma..
	Exemplo de resolução:
	Colem no codeblocks e testem funcionamento
 #include<stdio.h>
 #include<stdlib.h>
 
 int main()
 {
 float notas[4][4], soma=0, media=0;
 int linha, coluna, quant_alunos=0;
 for(linha = 0; linha < 4; linha++)
 {
 
 for(coluna=0; coluna <4; coluna++)
 {
 //os dois fors trabalham juntos
 printf("Informe uma nota: ");
 scanf("%f", &notas[linha][coluna]);
 soma= soma + notas[linha][coluna];
 quant_alunos= quant_alunos +1;
 }
 
 // Ao sair do laço
 }
 media = soma/quant_alunos;
 printf("\n\n A media de notas e: %f", media);
 }
-- O que esta sendo feito.?
	Aqui então usamos dois fors
 for(linha = 0; linha < 4; linha++)
 {
 
 for(coluna=0; coluna <4; coluna++)
 
 ... {
 }
}
Galera.. Prestem atenção no posicionamento das chaves.. Percebam que tem uma após o primeiro for e outra após o segundo..faz toda diferença.
-- Primeiramente corre as linhas.. 
	for(linha = 0; linha < 4; linha++) Quer dizer.. linha inicia com zero, é menor que 4 continua no laço ao final linha soma +1;
Agora vamos ler todos os valores da linha 1, percorrendo as colunas..
for(coluna=0; coluna <4; coluna++) Coluna vai começar com zero, é menor que 4 segue no laço ao final incrementa +1 a coluna;;;
---- Agora só vai voltar pular para outra linha depois que percorrer todas as colunas..
Ou seja aqui pelo menos 4 vezes..
Linha 0, coluna 0depois linha 0 coluna 1depois linha 0, coluna 2... ate a coluna 4;;
Depois pula para outra linhalinha 1 coluna 0linha 1 coluna 1 linha 1 coluna 2 e assim por diante.
Assim..
Vai percorrer na sequencia.. notas[0,0], notas[0,1], notas[0,2], notas[0,3], notas[1,0], notas [1,1], notas[1,2]..... ate notas[3][3].
Neste percurso vai efetuar o seguinte comando.. 
 printf("Informe uma nota: ");
 scanf("%f", &notas[linha][coluna]);
 soma= soma + notas[linha][coluna];
 quant_alunos= quant_alunos +1;
 
	Neste trecho vai pedir para informar uma nota, esta nota vai ser salva na posição da matriz que esta sendo percorrendo, esta nota vai ser somada para criar a média posteriormente,, e a quantidade de alunos vai aumentar em cada nota inserida...
-------------------------------------------------------------------------------------------------
Bora para alguns exercícios então?
Tentem entender – Copiem e testem no codeblocks
Exercícios base atividade 7
1. Faça um programa que cria um vetor com 5 elementos inteiros, lê 5 números do teclado, armazena os números no vetor e imprime o vetor na ordem inversa.
 #include <stdio.h>
 #include <stdlib.h>
 int main(){
 int i, v[5];
 //captura os elementos
 for(i=0;i<5;i++){
 printf("Elemento[%d]= ",i);
 scanf("%d",&v[i]);
 }
 //EXIBIR VALORES ORIGINAIS
 printf("\n::: Valores originais :::\n");
 for(i=0;i<5;i++)
 printf("%d\n",v[i]);
 //EXIBIR VALORES ORIGINAIS
 printf("\n::: Valores na ordem inversa :::\n");
 for(i=4;i>=0;i--)
 printf("%d\n",v[i]);
 return 0;
 }
2. Faça um programa que lê números em uma matriz de 2 x 2 elementos usando um comando for, o usuário deve informar um número e deve ser impressa a matriz multiplicada por este número.
Exemplo: números da matriz {1,2,1,2}, número informado é 2..
Matriz e saída{2,4,2,4}.
 #include <stdio.h>
 #include <stdlib.h>
 int main(){
 int i, j, num, m[2][2];
 //captura os elementos
 for(i=0;i<2;i++){
 for(j=0;j<2;j++){
 printf("Elemento[%d][%d]= ",i,j);
 scanf("%d",&m[i][j]);
 }
}
 //PEDIR UM VALOR PARA MULTIPLICAR
 printf("\nInforme um numero a ser multiplicado: ");
 scanf("%d", &num);
 //EXIBIR VALORES ORIGINAIS
 printf("\n::: Valores Originais :::\n");
 for(i=0;i<2;i++){
 for(j=0;j<2;j++)
 printf("%d ",m[i][j]);
 printf("\n");
 }
 //multiplica por 5
 for(i=0;i<2;i++)
 for(j=0;j<2;j++)
 m[i][j]=m[i][j]*num;
 //EXIBIR VALORES MULTIPICADOS
 printf("\n::: Valores Multiplicados por num:::\n");
 for(i=0;i<2;i++){
 for(j=0;j<2;j++)
 printf("%d ",m[i][j]);
 printf("\n");
 }
 return 0;
 }
Exercício atividade Lista 7
Faça um programa que lê uma matriz de 3 x 3 elementosusando um comando for, multiplica cada elemento por 5 e imprime o resultado. 
 
AULA 8
	E estamos chegando ao final desta jornada..	A aula 8 trabalhou com strings.. 
	
	O conteúdo abrange muitas funções já prontas da linguagem c. 
Alguns pontos que quero destacar é a forma de declaração:
char nome [15] = “Maria da Silva”;
E algumas funções da biblioteca usadas para a atividade.
strlen
strlen retorna o tamanho, em caracteres, de uma string dada. Na verdade o strlen() procura o terminador de string e calcula a distância dele ao início da string.
 Por exemplo:char nome [15] = “Maria da Silva”;
int s = strlen (nome);
// s conterá o valor 14
strcpy
strcpy copia o conteúdo de uma string para outra e coloca um terminador de string. Sua sintaxe é 
strcpy (destino, origem).
char nome[] = “Clarice Lispector”;
char nome2[] = “Oswald de Andrade”;
strcpy (nome, nome2);
Aqui juntara os dois nomes..
	Ai aqui é o seguinte galera.. Eu normalmente não coloco as resoluções prontas para não prejudicar o aprendizado de vocês.. Mas neste caso que precisa-se de bibliotecas do próprio programa e a forma de calcular o palíndromo é a mesma com mínimas variações.. Vou colocar aqui algumas repostas possíveis que pensei e explicar como efeito. Ok.
Que alegria né haha
Então vamos lá..
Faça um programa que dado uma string, imprima é palíndromo se ela for palíndromo e não é palíndromo se ela não for palíndromo. Lembrando que: Um palíndromo e uma palavra que tenha a propriedade de poder ser lida tanto da direita para a esquerda como da esquerda para a direita.
Ex.:
 Socorram-me, subi no ônibus em Marrocos. 
Anotaram a data da maratona
 #include<stdio.h>
 #include<string.h>
 #include <locale.h>
 //Unigran - Palindromo
 main()
 {
 setlocale(LC_ALL,"portuguese");
 int i,j=0;
 char str1[100],str2[100]={0};
 printf("Entre com a palavra ou Frase para verificar se é palindromo \n");
 printf("Frase: ");
 gets(str1);
 for(i=strlen(str1)-1;i>=0;i--)
 {
 str2[j]=str1[i];
 j++;
 }
 str2[j]='\0';
 printf("O reverso da String dada é ---> %s\n",str2);
 if(strcmp(str1,str2)==0)
 {
 printf("O termo é palindromo\n");
 }
 else
 {
 printf("O termo nao é palindroma\n");
 }
 }
--- Aqui eu peço para usuário entrar om uma palavra ou frase... esta palavra é salva na variável str1..... Observação gets(str1) seria o mesmo que eu fizesse scanf(“%s”, str1)...
-- Ai usei uma função da biblioteca strlen... para verificar a quantidade de caracteres da palavra strlen(str1)-1... o menos um.. seria por conta do terminador \0.. pois é a quantidade de caracteres da palavra mais um entendem..
-- Ai fiz o comando descrecendo o for, ou seja.. do tamanho do caractere até 1... digamos que a palavra tem 15 caracteres.. vai correr de 15 até 1.. Neste percurso
Coloquei o comando.. str2[j]=str1[i] Para outra string pegar os caracteres para que pudesse comparar posteriormente.
-- Por fim, uso a função strcmp em.... if(strcmp(str1,str2)==0).. Que ai ele vai comparar as duas strings.. a original e inversa,, se não encontrar diferença vai dizer que é palindroma, caso contrário não será.. 
Prático né? Agora um detalhe que testei aqui.....
Como o codeblocks é case insensitive se vc usar a primeira letra maiúscula vai apontar não palindoromo... 
Exemplo: osso é palíndromo, mas Osso não é palíndromo.
Para aqueles que se aventuraram em c++ até aqui, também deixo a resposta nesta linguagem..
 #include<iostream>>
 #include<string.h>
 #include <cctype>
 //Unigran - Palindromo
 using namespace std;
 
 int main()
 {
 setlocale(LC_ALL,"portuguese");
 int i,j=0;
 char str1[100],str2[100];
 cout<<"Entre com a palavra ou Frase para verificar se é palindromo \n";
 cout<<"Frase: ";
 cin.getline(str1, 100);
 for(i=strlen(str1)-1;i>=0;i--)
 {
 str2[j]=str1[i];
 j++;
 }
 str2[j]='\0';
 cout<<"O reverso da String dada é: " <<str2 <<endl;
 if(strcmp(str1,str2)==0)
 {
 cout<<"O termo é palindromo\n";
 }
 else
 {
 cout<<"O termo nao é palindroma\n";
 }
 }
------------------------------------------------------------------------------
			
AULA 9: Funções
Derrepente bateu o medo é? Que aula 9 hahahah
Não se preocupem galera.. Não tem aula 9, mas resolvi abordar um assunto que acho de extrema importância e até acho absurdo que não tenha sido abordado no decorrer das aulas.. Afinal tudo que fizemos até então é para aprendermos a criar funções para usarmos em nosso programa.
Então se vocês continuaram até aqui.. aproveitem este conteúdo extra..
Funções: Uma função nada mais é do que uma subrotina usada em um programa.
Na linguagem C, denominamos função a um conjunto de comandos que realiza uma tarefa específica em um módulo dependente de código.
Até no último exercício resolvido do palíndromo usamos funções que alguém elaborou um dia.. strcmp e strlein.. 
Mas vocês mesmos podem criar suas funções, que vão ajudar e muito.. imaginem que 
A própria main que vocês usaram até agora é uma função gente... Pasmem vocês estão usando função até agora..
Como foi dito no início temos função e procedimento
funções retornam um determinado valor;
Procedimento não retornam valor apenas executam ações.. em c chamamos de tipo void.
Para entender melhor vejam o exercício abaixo:
Para que usamos função? Imagine se dentro de um sistema vocês precisam realizar várias vezes operações somando 2 numeros.. Então com aprendizado até agora.. vocês faria em cada local algo semelhante a x = numero 1 + numero 2.. e toda vez usando o mesmo comando.. 
Com uma função você mostra o calculo que quer fazer e alimenta com valores dentro do seu ou de outro programa...
Quando vocês incluem bibliotecas como feito até agora.. vocês estão chamando o uso de funções que alguém já fez e utilizando em seu próprio programa..
Escreva um programa que receba dois números e imprima o maior entre eles. 
1 – Comando original
#include <stdio.h> int main() 
{ 
float n1, n2;
 printf("Informe dois numeros:"); scanf("%f%f", &n1, &n2);
 if (n1>n2) 
 printf(“O maior eh:%f”, n1);
 else 
 printf(“O maior eh:%f”, n2);
// 
 Este trecho é o que a função deve fazer (verificar qual é o maior dos números). Vamos colocá-lo dentro da função a ser criada.
return 0; 
}
Estrutura da função:
< tipo > < nome> ( Parametros, os dados que vc esta utilizando)
2 – Criando a função
#include <stdio.h> 
//Aqui preciso declarar a função que vou usar com seu nome e tipo de dados que vai receber.
float maior(float, float); /* protótipo da função */ 
int main() 
{ 
float n1, n2; 
printf("Informe dois numeros:"); 
scanf("%f%f", &n1, &n2); 
if (n1>n2) 
printf(“O maior eh:%f”, n1); 
else 
printf(“O maior eh:%f”, n2); 
// vamos jogar este código na função
return 0; 
} 
float maior (float n1, float n2)
{
	return 0;
} 
3 – Função final comentada.
#include <stdio.h> 
float maior(float, float); /* protótipo da função */ 
// Observem: Aqui eu declaro que a função que estou usando e os tipos de valores que ela //vai receber
#include <stdio.h> 
float maior(float, float); /* protótipo da função */ 
int main() 
{ 
float n1, n2, retorno; 
printf("Informe dois numeros:"); 
scanf("%f%f", &n1, &n2);
// Criei uma variável retorno que vai recebe o resultado
//calculo da função 
retorno = maior (n1, n2); 
// percebam maior(n1, n2) ou seja vai aciocar a função maior e enviar o conteúdo informado de n1 e n2.. e dentro //da função vai se calcular qual é o maior número.
printf(“O maior eh:%f”, retorno); 
return 0; 
} 
float maior (float n1, float n2) 
{ 
if (n1>n2) 
 return n1; 
 else 
return n2; 
}
//o que tem dentro de maior são os chamados parâmetros que estarão na funcao principal
//float maior o tipo de retorno que vai ter e o nome da funcao
//float n1 e float n2 valores que serão informados nafunção main
4 – Funcao final
 #include <stdio.h>
 
 float maior(float, float); /* protótipo da função */
 
 // Observem: Aqui eu declaro que a função que estou usando e os tipos de valores que ela //vai receber
 
 int main()
 {
 float n1, n2, retorno;
 printf("Informe dois numeros:");
 scanf("%f%f", &n1, &n2);
 // Criei uma variável retorno que vai recebe o resultado
 //calculo da função
 retorno = maior (n1, n2);
 // percebam maior(n1, n2) ou seja vai aciocar a função maior e enviar o conteúdo informado de n1 e n2.. e dentro
 //da função vai se calcular qual é o maior número.
 printf("O maior eh:%f", retorno);
 return 0;
 }
 float maior (float n1, float n2)
 
 //o que tem dentro de maior são os chamados parâmetros que estarão na funcao principal
 
 {
 // percebam que a função vai fazer o calculo a partir dos valores
 // que o usuário informar na int main principal
 if (n1>n2)
 return n1;
 else
 return n2;
 }
 
OUTRO EXEMPLO:
Agora sem retorno de função. Parâmetros e tipo void.
Exemplo: Faca uma função para imprimir uma determinada mensagem.
 #include <stdio.h>
 #include <stdlib.h>
 
 void cabecalho(void); //declaro o prototipo da funcao
 
 int main()
 {
 imprimir();
 
 system("pause");
 return 0;
 
 }
 void imprimir(void) //funcao imprimir
 {
 printf("\n Somos alunos da Eng da computacao");
 printf("\n Esta e a disciplina de Laboratorio I");
 printf("\n Ano 2018");
 
 }
{ 
if (n1>n2) 
return n1; 
else 
return n2; 
}
Exercicios práticos com função
1. Escreva um procedimento que imprima todos os números de 1 a 100.
 
 #include <stdio.h>
 #include <stdlib.h>
 
 int main()
 {
 imprima();
 system("pause");
 return 0;
 
 }
 
 void imprima ()
 {
 int i;
 for(i=1;i<=100;i++)
 printf("%d\n", i);
 }
 
2. /*Escreva uma função que leia 5 valores, um de cada vez, e conte quantos destes valores são negativos. Essa informação deve ser retornada para o algoritmo principal para ele imprimir o valor.*/
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
 
 int calcule (int);
 int main()
 {
 int res;
 
 res=calcule();
 printf("%d", res)
 
 system("pause");
 return 0;
 
 }
 
 int calcule (int)
 {
 int i, n, cont=0;
 for(i=0;i<5;i++)
 {
 printf("Digite um numero: ");
 scanf("%d", &n);
 if(n<0)
 cont++;
 }
 return cont;
 
 }
 
 
FINALIZAMOS POR AQUI AMIGOS.
Grande abraço
Paulo Souza
Souza.phn.agro@gmail.com

Mais conteúdos dessa disciplina