Caderno de Aplicações informáticas  · Web viewPosto isto, sou, com entanto, capaz de definir...

Preview:

Citation preview

Caderno de Aplicações informáticas

Linguagem C

Professora: Matilde Vieira

Aluna: Rita Gonçalves Pereira da Costa Bernardo

Nº 17

12ºCT2

2017/2018Escola secundária Rafael bordalo pinheiro

Lição nº 1 e 2 19 de setembro de 2017Sumário:

o Apresentação da disciplina.o Apresentação da professora, alunos(as), disciplina;o Critérios de Avaliação e Métodos de Avaliação;o Organização da disciplina, das equipas de trabalho a pares e

forma de disseminação da informação;

o Metodologia de Projeto (de Vida e Individual) – objetivos, metas,

valores, missão e visão;

o Desenvolvimento Pessoal – Ferramenta de análise individual – Roda da Vida.

- A minha reflexão pessoal:

Um reflexo turvo

Um dos meus valores é a sinceridade e, como tal, não vou escrever nesta pequena reflexão algo que ainda não sei. Por muitas voltas que dê, conseguir de momento definir todo um plano de vida futuro é, de momento, bastante complicado um tanto confuso e rebuscado.

Posto isto, sou, com entanto, capaz de definir um objetivo: completar os meus estudos no ensino superior. É algo que anseio completar da forma mais rápida possível, dando-me assim, a possibilidade de exercer um cargo (ou vários) que me complete, sendo, por isso, uma meta de vida (atual) arranjar um emprego.

1. Para que tal aconteça, não tenciono quebrar regras nem agir com má fé. Quero seguir este caminho de forma humilde e dedicada, sempre em busca do caminho certo a seguir, quero continuar a ser uma pessoa integra, que respeita os outros, mas, que também deseja ser respeitada. Há que ser justa, imparcial e sonhadora, para que possamos sonhar e idealizar o melhor que o mundo tem para nos dar. Acredito piamente que são os valores em que nos

1

apoiamos que ditam o percorrer do nosso futuro e a forma como o desfrutamos.

A minha missão? .... De momento é completar tudo o que acabei de enunciar. E, quando isso acontecer, quando a completar, espero ter a capacidade de renovar as minhas ambições e de criar outra missão para finalizar, e assim sucessivamente.

Atualmente, gostava de já ter um plano de vida, uma coisa abrangente pela qual me conseguisse guiar, porém, tal plano é inexistente e não sei se me devo de alguma forma preocupar... Contudo, também vejo que ainda tenho várias dúvidas sobre inúmeros assuntos e sei que tenho de pesquisar sobre os mesmos de modo a encontrar todas as respostas necessárias para prosseguir com a minha vida e, talvez um dia, ter um plano bem delineado.

Lição nº 3 e 4 21 de setembro de 2017Sumário:

o Computadores e Linguagens de Programação. Estrutura e funcionamento de um computador. Algoritmos e Lógica da Programação. Ambientes de programação. Evolução das linguagens de programação. Paradigmas das linguagens de programação. A lógica da programação.

o Fases típicas na elaboração de um programa.o Entidades fundamentais da lógica de programação. Exemplos.o Conceito de algoritmo. Formas de representar algoritmos. Ciclo de

obtenção do produto final.o Abordagem estruturada. Componentes fundamentais de um

programa. Dados. Instruções básicas. Expressões.

Lição nº 5 e 6 26 de setembro de 2017Sumário:

o Ciclos de controle: If...then...else; do..while. o Resolução de exercícios em pseudocódigo.

2

Lição nº 7 e 8 27 de setembro de 2017Sumário:

o Ciclos de controle: If...then...else; do..while. o Resolução de exercícios em pseudocódigo.

Lição nº 9 e 10 3 de outubro de 2017Sumário:

o Resolução de Exercício demonstrativo número 1: Projeto 1.o Utilização dos ciclos de controle: switch; do...while.

Programa 1#include <stdio.h>

main()

{

char Opcao;

do

{

printf ("O utilizador deve escolher a opcao prssionando a primeira letra da palavra");

printf ("\tMenu Principal\n");

// \t Tabulação Horizontal

// \n Mudança de Linha

printf("\n\n\t\tClientes");

printf("\n\n\t\tFornecedores");

printf("\n\n\t\tEncomendas");

3

printf("\n\n\t\tSair");

printf("\n\n\n\t\tOpcao");

scanf(" %c", &Opcao);

//%C Diz respeito a um único caracter, o programa está à espera de um único caracter.

fflush(stdin);

//Limpar o buffer do teclado

switch (Opcao)

{

case 'c':

case 'C': puts("Opcao Clientes");break;

case 'f':

case 'F': puts ("Opcao Fornecedores");break;

case 'e':

case 'E': puts ("Opcao Encomendas");break;

case 's':

case 'S': break;

default : puts("Opcao Invalida");

}

getchar(); /*Parar o ecrã.*/

}

while (Opcao != 's' && Opcao != 's');

// != -> Diferente

}

Lição nº 11 e 12 4 de outubro de 2017Sumário:

o Blibliotecas da Linguagem C.o Elaboração de exercícios sobre a estrutura de controlo: If ... else:

Projeto 2 e Projeto 3.

4

Programa 2/*RICARDO EZEQUIEL E RITA COSTA*/

#include <stdio.h>

#include <math.h>

/*programa 2

Desenvolver um algoritmo que leia um numero inteiro e verifique se um numero é divisível por cinco e por três ao mesmo tempo*/

int main()

{

int numero;

printf("\n\n\tNumero inteiro a Verificar");

scanf(" \n %d", &numero);

if (((numero % 5)==0) && ((numero % 3)==0))

{

printf("\n\tO NUMERO E DIVISIVEL\n");

}

else

{

printf("\n\tO NUMERO NAO E DIVISIVEL\n");

}

printf("\n\n\tCreated by Ritiwinibini and Docinho da Life");

}

Programa 3//RITA COSTA E RICARDO EZEQUIEL

5

#include <stdio.h>

#include <math.h>

/*Programa 3

Dados 4 numeros distintos, desenvolver um algoritmo que determine imprima a soma dos 3 numeros menores*/

int main()

{

printf("Introduza 4 numeros inteiros");

int numero1, numero2, numero3, numero4, soma;

scanf("%d", &numero1);

scanf("%d", &numero2);

scanf("%d", &numero3);

scanf("%d", &numero4);

if (numero1 > numero2 && numero1 > numero3 && numero1 > numero4)

{

soma = numero2 + numero3 + numero4;

printf("\t\t%d\n",soma);

}

else if(numero2 > numero1 && numero2 > numero3 && numero2 > numero4)

{

soma = numero1 + numero3 + numero4;

printf("\t\t%d\n",soma);

}

else if (numero3 > numero1 && numero3 > numero2 && numero3 > numero4)

6

{

soma = numero1 + numero2 + numero4;

printf("\t\t%d\n",soma);

}

else if(numero4 > numero1 && numero4 > numero2 && numero4 > numero3)

{

soma = numero1 + numero2 + numero3;

printf("\t\t%d\n",soma);

}

printf("made with love and anger by RR");

return 0;

}

Lição nº 13 e 14 10 de outubro de 2017Sumário:

o Projetos elaborados em C no IDE CodeBlocks:o Programa 4 - Variáveis em Co Programa 5 - Utilizar variáveis floato Programa 6 - Variáveis float e charo Programa 7 - Carateres da Língua Portuguesao Programa 8 - Ciclo For

Programa 4/*RITA COSTA BERNARDO, 12ºCT2 ; PROGRAMA4*/

#include <stdio.h>

7

//INICIALIZAR O PROGRAMA

int main()

{

//RESERVAR ESPAÇO NA MEMORIA PARA A VARIAVEL

//DECLARAR VARIAVEL

int MinhaIdade;

//INICIALIZAR A VARIAVEL

MinhaIdade = 17;

//DECLARAR E INICIALIZAR VARIAVEIS (SO NUMA LINHA DE CODIGO)

int MaeIdade = 44;

int PaiIdade = 49;

int IdadeTotal;

IdadeTotal= MinhaIdade + MaeIdade + PaiIdade;

printf ("\nMinha Idade = %i\nMae Idade = %i\nPai Idade = %i" , MinhaIdade , MaeIdade , PaiIdade);

// %i => variavel inteira

printf ("\nMinha Idade = %i\n" , MinhaIdade);

printf ("\nO total das idades dos membros da familia = %i", IdadeTotal);

return 0;

}

Programa 5/*RITA COSTA BERNARDO, 12ºCT2 ; PROGRAMA5 */

#include <stdio.h>

//INICIALIZAR O PROGRAMA

int main()

{

8

int Numero1 = 5;

float Numero2 = 2; //se nao estiver FLOAT o resultado arredonda

float Resultado = Numero1/Numero2;

printf ("O resultado da divisao e = %f\n" , Resultado)

return 0;

}

Programa 6/*RITA COSTA BERNARDO, 12ºCT2 ; PROGRAMA6 */

#include <stdio.h>

//INICIALIZAR O PROGRAMA

int main()

{

int Inteira = 10; // Número Inteiro

float Decimal = 10.5; // Número Decimal com SEIS casas decimais

//declarar uma variavel caracter

char Caractere = 'a'; // Um caractere é uma LETRA

printf ("Imprime a variavel Inteira = %i\n" , Inteira);

printf ("Imprime a variavel Decimal = %f\n " , Decimal);

printf ("Imprime a variavel Caractere = %c\n" , Caractere);

return 0;}

Programa 7/*RITA COSTA BERNARDO, 12ºCT2 ; PROGRAMA7 */

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

9

//INICIALIZAR O PROGRAMA

int main(void) //VOID não retorna valores

{

setlocale (LC_ALL, "Portuguese");

printf ("\n\n\n\tVamos utilizar caracteres e acentuação em língua portuguesa!!!\n\n\n");

system("pause");

return 0;

}

Programa 8//RITA COSTA BERNARDO, 12ºCT2 ; PROGRAMA8

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

int main()

{

setlocale (LC_ALL, "Portuguese");

int Contador;

int Numero = 1;

//FOR (INICIALIZAÇÃO = valor inicial ; CONDIÇÃO = limite ; INCREMENTO = ou Decrementar)

for(Contador=1 ; Contador <= 10; Contador = Contador + 1)

{

printf ("\n\tTeste\n");

printf ("\n\tPortugal\n");

}

10

//return 0; }

Lição nº 15 e 16 11 de outubro de 2017Sumário:

o Projetos elaborados em C no IDE CodeBlocks: programas 9 e 10.

Programa 9#include <stdio.h>

#include <stdlib.h>

#include <locale.h> //necessário para usar o setlocale

int main(void)

{

printf ("\n****** Verificando a localidade Corrente ******\n\n");

printf ("Localidade Corrente; %s\n, setlocale(LC_ALL, NULL)");

printf ("Não é possível usar acentuação ou ç corretamente...\n\n");

printf ("\n******Alterando para a localidade do Sistema******\n\n");

}

//alterando para o padrão do sistema operativo")

Programa 10/*Elaborar um programa em linguagem C para exemplificar a utilização de

algumas funções de ctype.h.*/

11

#include<stdio.h>

#include<stdlib.h>

#include<ctype.h> //biblioteca p/ as funções isalpha isdigit toupper tolower

int main(void)

{

char letra;

char op;

printf("Digite uma letra do alfabeto: ");

scanf("%c",&letra);

//isalpha verifica se é uma letra do alfabeto

if (isalpha(letra))

{

printf("\nVoce digitou a letra %c \n\n",letra);

//toupper transforma em maiuscula

letra = toupper(letra);

printf("Maiuscula: %c \n\n",letra);

//tolower transforma em minuscula

letra = tolower(letra);

printf("Minuscula: %c \n\n",letra);

}

else

{

printf("Voce nao digitou uma letra!!!\n");

}

12

printf("\nInforme um numero de 0 a 9: ");

fflush(stdin);

scanf("%c",&op);~

//isdigit verifica se o carater recebido é um dígito

if(isdigit(op))

{

printf("Digito: %c \n\n",op);

}

else

printf("Voce nao digitou um numero!!!\n\n");

system("pause");

return 0;

}

Lição nº 17 e 18 17 de outubro de 2017Sumário:

o Realização dos Programas: 11, 12.

Programa 11//Rita Costa nº17 Programa11

#include <stdio.h>

#include <locale.h>

/*Ciclo While

Iniciar o programa*/

int main ()

13

{

setlocale(LC_ALL,"Portuguese");

int contador = 1;

/*Para comparar ou igualar ==

Para diferente!=*/

while (contador!= 5) {

printf("%i\n", contador);

++contador;

/*++contador é o mesmo que contador++ ou contador = contador + 1 */

}

system("pause");

return 0;

}

Programa 12//Rita Costa nº17 Programa12

#include <stdio.h>

#include <locale.h>

/*Ciclo if...else

Cálculo do IMC-

Se o IMC for maior ou igual a 30, a pessoa precisa de emagrecer, caso contrário pessoa não é obesa.

Iniciar o programa*/

#define LIMITE 30

int main ()

14

{

setlocale (LC_ALL, "Portuguese");

float altura,peso,IMC;

printf("Digite a sua altura:\n");

scanf("%f", &altura);

printf ("Digite o seu peso:\n");

scanf("%f", &peso);

IMC = peso/pow(altura, 2);

printf("\nO seu IMC é: %2.2f \n\n", IMC);

if (IMC <= LIMITE)

{

printf("\nNão é obesa(o).");

}

else

{

printf("\nPrecisa de emagrecer!!!\n");

}

getchar();

system ("pause");

return 0;

}

Lição nº 19 e 20 18 de outubro de 2017

15

Sumário:

o Realização dos Programas: 13, 14 e 15.

Programa 13//Rita Costa nº17 Programa13

#include <stdio.h>

#include <math.h>

#include <locale.h>

/*Desenvolver um algoritmo que leia os coeficiemtes de (a,b e c) de uma equação do segundo grau e que calcule as suas raizes.

O programa deve mostrar quando possível o valor das raízes calculadas e a classificação das raízes.*/

int main ()

{

setlocale (LC_ALL, "Portuguese");

float a, b, c, delta, X1, X2;

printf ("\n\nResolução de uma equação do 2o grau: \n\n");

printf ("\nInsira o valor de 'a' =>\t");

scanf ("%f", &a);

printf ("\nInsira o valor de 'b' =>\t");

scanf ("%f", &b);

printf ("\nInsira o valor de 'c' =>\t");

scanf ("%f", &c);

16

delta= (pow(b,2)-4*a*c);

X1= (-b+sqrt(delta)/(2*a));

X2= (-b-sqrt(delta)/(2*a));

if (delta==0)

{

printf ("\n\n\nRaízes Únicas.\n");

printf ("X1=%.2f\n", X1);

}

else if (delta<0)

{

printf ("\n\n\nRaízes Imaginárias.\n");

}

else if (delta>0)

{

printf ("Raízes Distintas");

printf ("\n\nX1=%.2f\n", X1);

printf ("\n\nX2=%.2f\n\n", X2);

}

system ("pause");

return 0;

}

Programa 14//Rita Costa nº17 Programa 14

#include <stdio.h>

17

#include <math.h>

#include <locale.h>

/*Desenvolver um algoritmo para ler um número X e calcular e imprimir o valor de Y de acordo com as condições:

Y=X, s X<1;

y=0, se X=1;

y=x^2, se x>1.*/

int main ()

{

setlocale (LC_ALL, "Portuguese");

int x,y;

printf ("\n\n\tIndique a variável x:");

scanf ("%d", &x);

if (x<1)

{

y=x; // o '=' ´ é uma atribuição

printf ("\n\n\ty=%d\n\n", y);

}

else if (x==1) // os "==" é uma igualdade

{

y=0;

printf ("\n\n\ty= %d\n\n", y);

}

else if (x>1)

{

y=pow(x,2);

printf ("\n\n\ty= %d\n\n", y);

18

}

system ("pause");

return 0;

}

Programa 15//Rita Costa, nº17 Programa 15

#include <stdio.h>

#include <math.h>

#include <locale.h>

/*Fazer um algoritmo para pedir um mês e um ano e exibir o número de dias do mês7ano digitados*/

int main ()

{

setlocale (LC_ALL, "Portuguese");

int ano, anobissexto, mesfevereirobissesxto;

char mes(15;

printf("\n\n\tIndique o mês:");

scanf ("%s",mes);

system ("pause");

return 0;

}

Lição nº 21 e 22 31 de outubro de 2017Sumário:

19

o Resolução de exercícios: programas 16 e 17.

Nota: && :AND (E)

|| :OR (OU) | :NOT (NÃO)

Programa 16//Rita Costa nº17 Programa 16

#include <stdio.h>

#include <math.h>

#include <locale.h>

/*Fazer um algoritmo que calcule a média das três notas de um aluno e que mostre, além do valor da média,

uma mensagem de 'Aprovado',caso a média seja igual ou superior a 10, ou a mensagem 'Reprovado' caso contrário*/

int main ()

{

setlocale (LC_ALL, "Portuguese");

float Nota1,Nota2,Nota3,Media;

printf ("\n\n\n\tInsere os valores das tuas notas de zero a vinte.");

printf ("\n\n\n\n\tNota1:");

scanf ("%f", &Nota1);

printf ("\n\n\tNota2:");

scanf ("%f", &Nota2);

printf ("\n\n\tNota3:");

20

scanf ("%f", &Nota3);

Media= (Nota1+Nota2+Nota3)/3;

if (Media>=10)

{

printf ("\n\n\n\n\tMédia= %.2f", Media);

printf ("\n\n\tAPROVADO\n");

}

else if (Media<10)

{

printf ("\n\n\n\n\tMédia= %.2f", Media);

printf ("\n\tREPROVADO\n");

}

return 0;

}

Programa 17//Rita Costa nº17 Programa 17

#include <stdio.h>

#include <math.h>

#include <locale.h>

/*Desenvolver um algoritmo para ler o nº da sala de aula, a sua capacidade e o total de alunos inscritos na mesma

e imprimir uma linha mostrando o numero da sala, a sua capacidade, o numero de cadeiras ocupadas e a sua disponibilidade

indicando se a sala esta lotada ou não*/

int main ()

21

{

setlocale (LC_ALL, "Portuguese");

int NumeroDaSala, CapacidadeDaSala, AlunosInscritos, DisponibilidadeDaSala;

printf ("\n\n\n\tIntroduza as especificações da sala:");

printf ("\n\n\n\tNúmero da sala:");

scanff ("%i", &NumeroDaSala);

printf ("\n\n\n\tCapacidade da Sala:");

scanff ("%i", &CapacidadeDaSala);

printf ("\n\n\n\tAlunos Inscritos Para a Sala:");

scanff ("%i", &AlunosInscritos);

DisponibilidadeDaSala = CapacidadeDaSala - AlunosInscritos

if (AlunosInscritos >= CapacidadeDaSala)

{

printf ("SALA = %d\n",NumeroDaSala);

printf ("CAPACIDADE = %D\n",CapacidadeDaSala);

printf ("DisponibilidadeDaSala")

}

Lição nº 23 e 24 7 de novembro de 2017Sumário:

o Arrays em Pascal e em C (diferenças entre as linguagens de programação).

22

o Programa 18 - Vetores (Arrays unidimensionais).

Matrizes (ou Arrays) bidimensionais (2 dimensões)

Utilizam duas variáveis de índice, uma para a linha, outra para a coluna para o acesso dos seus elementos. Graficamente é representado por uma tabela de dupla entrada (linhas X colunas).

EX:

Alunos1 2 3 4

Período 1 C(1,1)=14 C(1,2)=15 C(1,3)=14 C(1,4)=19

2 C(2,1)=12 C(2,2)=18 C(2,3)=18 C(2,4)=12

3 C(3,1)=13 C(3,2)=16 C(3,3)=16 C(3,4)=15

Classificação = C (Classifica[L,C] -> Tabela)

Operações Básicas com Matizes:

São declaradas na parte declarativa do programa (onde se declaram todas as variáveis globais).

Para declarar a matriz é usada a palavra Var (PASCAL).

Var temperatura array [1..2,1..3] of real;

media, soma, float; Tipo de dados

Var <NomeVariavel> array [1..n,1..m] of <tipo de dados>SINTAXE

printf (“Insira as 6 temperaturas carregando na tecla do ‘enter’ entre elas.”),

For l := 1 to 2

23

For c : 1 to 3

Scanf ( “%f” ,&temperatura);

Programa 18//Rita Costa nº17 Programa 18

#include <stdio.h>

#include <math.h>

#include <locale.h>

/*Tem um conjunto de dados contendo a altura e o sexo (masculino e feminino).

Fazer um algoritmo que calcule e escreva:

ºA maior e a menor altura do grupo;

ºA média da altura das mulheres;

ºO numero de homens.

*/

int main ()

{

setlocale (LC_ALL, "Portuguese");

int x , 1 , NumHomens= 0 , NumMulheres= 0 ;

float h, media = 0 , SomaHom=0, MaiorAltura=0, MenorAltura=0,

char sexo [12]

(…)

Programa 18 Incompleto

Lição nº 25 e 26 8 de novembro de 2017Sumário:

o Programa19 – Arrays.

24

o Programa 20 – Arrays.

Programa 19//Rita Costa nº17 Programa 19

#include<stdio.h>#include<locale.h>#include<stdlib.h>#include<math.h>#include<string.h>~

/**Realiza a leitura dos salários pagos a um indivíduo durante um ano*/main(){ setlocale(LC_ALL, "Portuguese"); float sal[12]; //float refere-se a um número de meses float total; int i;

for (i=0; i<=11; i++) { printf("\nIntroduza o salário do mês %d: ", i+1); scanf("%f", &sal[i]); }

//Mostrar os valores mensais e calcular o total

puts ("Mês Valor");

for (i=0, total= 0.0; i<=11; i++) { printf(" %3d %f\n", i+1, sal[i]); total+=sal[i];//isto é igual a: total = total + sal[12] } printf("Total Anual: %9.2f\n", total);system("pause");return 0;}

Programa 20//Rita Costa nº17 Programa 20

#include<stdio.h>#include<locale.h>

25

#include<stdlib.h>#include<math.h>#include<string.h>#define DIM 3

main(){setlocale(LC_ALL, "Portuguese");

char Galo [DIM][DIM] = {{' ',' ',' '},{' ',' ',' '},{' ',' ',' '}}; int i,j;

Galo[0][0] = 'X'; Galo[0][2] = 'O'; Galo[1][1] = 'X'; Galo[2][2] = 'O';

for (i=0; i<DIM; i++) { for (j=0; j<DIM; j++) printf("%c %c", Galo[i][j], j==DIM-1?' ':'|'); if (i!=DIM-1) printf("\n--------\n"); }system("pause");return 0;}

Lição nº 27 e 28 9 de novembro de 2017Sumário:

o Programa 21 – Arrays.o Programa 22 – Arrays.

Programa 21//Rita Costa nº17, programa 21

26

/*Escrever um programa que leia um valor de 30 elementos

inteiros que são maiores do que a media dos valores digitados*/

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <locale.h>

int main ()

{

setlocale (LC_ALL, "Portuguese");

int vetor [8], i, total;

float media;

media=0;

total=0;

for (i=0; i<8; i++)

{

printf ("\n\n\tIntoduza um número inteiro %d: ", i+1);

scanf ("%d", &vetor[i]);

total=total+vetor[i];

}

media=total/8;

printf("\n\n\tA média é %f\n" , media);

printf ("\n\tOs valores acima da média são:\n\n");

for(i=0; i<8; i++)

{

if (vetor[i]>media);

27

printf("\n\t%d\n",vetor[i]);

}

system ("pause");

return 0;

}

Programa 22//Rita Costa nº17, programa 22

/*Escrever um programa que leia nomes e apelidos de pessoas

e os mostre no ecrâ no formato 'Apelido, Nome'.

O programa deve terminar quando um nome é introduzido vazio.*/

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

#include <locale.h>

#define DIM 20

#define SEP_NOME ","

int main ()

{

setlocale (LC_ALL, "Portuguese");

char Nome[DIM+1], Apelido[DIM+1], Completo[2*DIM+1];

while (1)

{

printf ("\n\n\tNome:"), gets(Nome);

28

if (strlen (Nome)==0) break; /*comprimento do nome*/

/*Colocar o Apelido antes do Nome na string completa*/

printf ("\n\n\tApelido:");gets(Apelido);

strcpy (Completo, Apelido); /*Copiar o apelido*/

strcat (Completo, SEP_NOME); /*Juntar o separador/virgula*/

strcat (Completo , Nome); /*Juntar o primeiro nome*/

puts (Completo);

}

system ("pause");

return 0;

}

Lição nº 29 e 30 14 de novembro de 2017Sumário:

o Funções. Programa 23.o Apontadores.

Programa 23//Rita Costa, nº 17, Programa 23

#include<stdio.h>#include<locale.h>#include<math.h>#include<stdio.h>#include<string.h>

/**Programa 23 - Escrever um programa que solicite ao utilizador dois números e apresentano ecrão resultado da sua soma (criar a função soma) e o dobro (função)de um deles*/

main(){///Primeiro declaram-se as funções /// Declaração de funções no sítio de declaração de variáveis int soma (int a, int b) {

29

return a+b; }///Devolve o dobro de um número inteiroint dobro(int x)

{ return 2*x; } setlocale (LC_ALL, "Portuguese"); int i, n, totalsoma, totaldobro;

printf("Introduza dois valores inteiros: \n"); scanf("%d%d", &i, &n);

totalsoma = soma(i,n);///Utilização da função soma~

printf ("%d + %d = %d\n", i, n, totalsoma); printf ("2 * %d = %d \n2 * %d = %d\n" , i, dobro(i), n, dobro(n));

system ("pause"); return 0;}

Lição nº 31 e 32 15 de novembro de 2017Sumário:

o Programa 24- Apontadores.o Programa 25 – Funções.

Programa 24//Rita Costa, nº 17, Programa 24

#include<stdio.h>

#include<math.h>

#include<locale.h>

#include<stdlib.h>

#include<string.h>

/**O nome de um vetor corresponde ao endereço do seu primeiro elemento isto é:

30

se v for um vetor v==&v[0]*/

/**Existem duas formas de colocar um apontador ptr a apontar para o primeiro elemento de v:

1.ptr = &v[0];

2.ptr= v;

*/

/**Ao contrário de v que é um vetor (apontador constante associado à sua própria memória)

ptr é um apontador puro, pelo que pode ser alterado com endereços diferentes

ao longo do tempo de execução do programa*/

/**Exercício 24- escrever um programa que mostre uma string no ecrã pela ordem que está

escrita e pela ordem contrária*/

main ()

{

char s[100];

char *ptr= s; ///aponta para o primeiro carater de s

printf ("\n\nIntroduza uma string até 100 caracteres:");

gets (s);

if (*ptr=='\0') return; /**ou return 0; se der erro de compilação*/

/**string vazia*/

while (*ptr!='\0')

31

putchar (*ptr++);

/**imprimir a string ao comtrário*/

ptr--; ///por causa do '\0'

while (ptr>=s) ///enquanto ptr for >= que &s[s]

putchar(*ptr--);

}

Programa 25///Rita Costa nº17, programa 25

/**Implementar a função Potência(Pot)

float Pot(float x, int n)*/

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

float Pot (float x ,int n)

{

float res;

int i;

for (i=1, res=1.0; i<=n; i++)

res*=x;

return res;

}

main ()

{

setlocale (LC_ALL, "Portuguese");

float b, Potencia;

32

int e;

printf ("\n\tInsira o valor da Base: ");

scanf ("%f", &b);

printf ("\n\tInsira o valor do Expoente: ");

scanf ("%i", &e);

printf ("\n\n\t%2.0f elevado a %i é igual a: %.2f\n\n " , b, e, Pot(b,e));

system ("pause");

return 0;

}

Lição nº 33 e 34 16 de novembro de 2017Sumário:

o Exercícios – Funções: Programa 26.o Exercícios – Funções: Programas 27, 28 e 29.

Programa 26///Rita Costa nº17, programa 26

/** Escreva um programa que, recorrendo a 3 funções distintas escreve,

no ecrã, o seguinte output:

"***"

"****"

"*****"

"****"

"***"

*/

/*#include <stdlib.h>

#include <string.h>

33

#include <math.h>

#include <locale.h>

Só precisa de uma biblioteca*/

#include <stdio.h>

linha3X()

{

int i;

for (i=1; i<=3; i++)

putchar ('*');

putchar ('\n');

}

linha5X()

{

int i;

for (i=1; i<=5; i++)

putchar ('*');

putchar ('\n');

}

linha7X()

{

int i;

for ( i=1; i<=7; i++)

putchar ('*');

putchar ('\n');

}

main()

{

linha3X();

34

linha5X();

linha7X();

linha5X();

linha3X();

}

Programa 27///Rita Costa nº17, programa 27

#include <stdlib.h>

#include <string.h>

#include <math.h>

#include <locale.h>

#include <stdio.h>

//declaração de funções

void tiro (int x)

{

switch (x)

{

case 1: printf ("\nEste teste é mesmo fácil.");

case 2: printf ("\nAi de quem diga o contrário...");

return;

case 3: printf ("\nEstou no tiro e x=%d.", x);

liro (x++);

break;

printf ("\nVou sair do tiro.");

35

default: printf ("\nEntrei pelo default");

liro (x);

}

}

void liro (int x)

{

switch (x)

{

case 2: return;

printf ("\nOlarailarilolela");

break;

case 3: printf("\nEu percebo Himalaias de C.");

break;

printf ("\nSou mesmo BOA! EXCELENTE MEMO!");

break;

case 4: printf ("\nNão percebo nada disto.");

liro(2);

return;

default:printf ("\nCá estou eu mais uma vez.");

tiro (x--);

}

}

Programa 28///Rita Costa nº17, programa 28

#include <stdlib.h>

36

#include <string.h>

#include <math.h>

#include <locale.h>

#include <stdio.h>

void inic(int s [])

{

int i;

for (i=0; i<=10; i++)

s [i]=0;

}

main()

{

int v[10], i;

inic (v);

for (i=0; i<10; i++)

v[i]=1;

for (i=10-1; i>=0; i--)

printf ("%d\n", v[i]);

}

Programa 29#include <stdio.h>;

#include <locale.h>;

#include <stdlib.h>;

/**Exercício 29

Fazer um algoritmo que:

• Leia um número indeterminado de linhas contendo cada uma a idade de um indivíduo.

A última linha, que não entrara nos cálculos, contem o valor da idade igual a zero.

37

• Calcule e escreva a idade média deste grupo de indivíduos.*/

int main(){

setlocale(LC_ALL, “Portuguese”);

int idade=1, soma=0, count=0;

float media;

printf(“Para a última idade digite um Zero.\n\n”);

while (idade> 0)

{

soma += idade;

count++;

printf(“Indique a idade:”);

scanf(“%d” , &idade);

}

media = (float)(soma-1) / (float)(count-1);

//Porque colou-se idade=1

//Porque no contador é -1 a contar (porcausa do ZERO)

printf(“A IDADE MEDIA = %.2f\n”,media);

return 0;

}

Lição nº 35 e 36 21 de novembro de 2017Sumário:

o Momento de Avaliação.

Lição nº 37 e 38 22 de novembro de 2017Sumário:

38

_______________

Lição nº 39 e 40 23 de novembro de 2017Sumário:

______________

Lição nº 41 e 42 28 de novembro de 2017Sumário:

o Realização do portfólio do primeiro período.

Exercícios Propostos: Exercício 1//Exercício 1

#include <stdio.h>

int main()

/* EXERCICIO 1

Criar um programa para saber os estados civis*/

{

char Opcao;

do

{

printf ("\n\tO utilizador deve escolher a opcao selecionando a primeira letra da palavra.");

printf ("\n\n\tMenu principal:");

printf ("\n\n\n\t\tSolteiro");

printf ("\n\n\n\t\tCasado");

39

printf ("\n\n\n\t\tDivorciado");

printf ("\n\n\n\t\tViuvo");

printf ("\n\n\n\n\t\tAbandonar");

printf ("\n\n\n\n\tOpcao =>");

scanf (" %c", &Opcao);

fflush(stdin);

switch (Opcao)

{

case 's':

case 'S': puts ("Opcao Solteiro") ;break;

case 'c':

case 'C': puts ("Opcao Casado") ;break;

case 'd':

case 'D': puts ("Opcao Divorciado") ;break;

case 'v':

case 'V': puts ("Opcao Viuvo") ;break;

case 'a':

case 'A': break;

default : ("Opcao Invalida");

}

getchar ();

}

while (Opcao != 's' && Opcao != 's');

}

Exercício 2//EXERCICIO 2

#include <stdio.h>

40

#include <stdlib.h>

#include <string.h>

#include <math.h>

#include <locale.h>

/**Elaborar um programa que trabalhe as variáveis inteiras em C, de forma a solicitara

inicial do nome do utilizador (dizer qual é no caso de maiúscula e minúscula), questionar

a sua idade, a idade do seu pai, a idade da sua mãe e fazer a soma das idades.

imprima todos os dados introduzidos incluindo a soma das idades.*/

int main ()

{

setlocale (LC_ALL, "Portuguese");

char InicialNome;

int Idade, IdadeMae, IdadePai, Soma;

printf ("Qual é a inicial do teu nome?", InicialNome );

scanf ("%c", &InicialNome);

if (isalpha(InicialNome))

{

printf("\nDigitas-te letra %c \n\n",InicialNome);

//toupper transforma em maiuscula

InicialNome = toupper(InicialNome);

printf("Maiúscula: %c \n\n",InicialNome);

//tolower transforma em minuscula

41

InicialNome = tolower(InicialNome);

printf("Minúscula: %c \n\n",InicialNome);

}

printf ("Qual é a tua idade?");

scanf ("%d", &Idade);

printf ("\nQual é a idade da tua mãe?");

scanf ("%d", &IdadeMae);

printf ("\nQual é a idade do teu pai?");

scanf ("%d", &IdadePai);

Soma= Idade + IdadeMae + IdadePai;

printf ("\nA soma das idades é: %d\n\n\n", Soma);

system ("pause");

return 0;

}

Programas Propostos Obrigatórios para a avaliação:4 programas obrigatórios

- Exercícios propostos para treino com arrays (vetores e matrizes): Opção 1

///Rita Costa, nº 17

/**Crie um programa que lê 6 valores inteiros e em seguida,mostre no ecrã os valores lidos na ordem inversa*/

42

#include <stdio.h>

#include <locale.h>

int main()

{

setlocale(LC_ALL, "Portuguese");

int valor[6], i;

for (i = 0; i<6; i++){

printf("\nIntroduza o valor %d: ", i+1);

scanf("%d", &valor[i]);

}

/** Normal*/

printf("\n\nOrdem normal:");

for (i=0; i<6; i++)

printf("\nValor %d = %d", i+1, valor[i]);

/** Inversa*/

printf("\n\nOrdem inversa:");

for (i=5; i>=0; i--)

printf("\nValor %d = %d", i+1, valor[i]);

system("pause");

return 0;

}

Opção 2///Programa para ler a nota da prova de 15 alunos e armazene num vetor, calcule e imprima a media geral

43

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

#include <locale.h>

int main ()

{

setlocale (LC_ALL, "Portuguese");

int vetor [15],i, total;

float media;

media=0;

total=0;

for(i=0; i<15; i++)

{

printf ("Insere a nota %d:", i+1);

scanf ("%d", &vetor[i]);

total= total+vetor[i];

}

media= total/15;

printf("\n\n\tA média é %f\n" , media);

system ("pause");

return 0;

}

- Exercícios propostos para treino com funções: Opção 2

///Rita Costa, nº17, Ex.4 funções para treino

44

#include <stdio.h>#include <locale.hint maior(int a, int b) {if (a<b) { return b; }else if(a>b) { return a; }}

int main(){ setlocale(LC_ALL, "Portuguese");

int ni, n2;

printf("Introduza um numero: \n") scanf("%d", &n1);

printf("Introduza um segundo numero: \n") scanf("%d", &n2);

if (n1 == n2){

printf("Os numeros sao iguais. \n"); } else

{ printf("Onumero maior é: %d.\n", maior(n1,n2)); }

system ("pause");return 0;}

Opção 3

///Rita Costa, nº17

/**Faça uma função que receba a altura e o raio de umcilindro circular e retorne o volume do cilindro.

45

O volume de um cilindro circular é calculado pormeio da seguinte fórmula: - V = pi * raio2 * altura, onde pi = 3.141592*#include <stdio.h>#include <math.h>#include <locale.h>

float volume(float r, float h){ int pi = 3.141592; return (pi * pow(r, 2) * h);}

int main(){ setlocale(LC_ALL, "Portuguese");

float r, h; printf("Insira o valor do raio: "); scanf("%f", &r);

printf("\nInsira o valor da altura: "); scanf("%f", &h);

printf("\nO volume do cilindro com raio %2.2f e altura %2.2f é %2.2f", r, h, volume(r, h));

system("pause"); return 0;

}

46

Recommended