11ºL 15/16


12ºL16/17


11ºN16/17















www.ticmania.net

Pascal

JAVA

VisualBasic

PTE

HOME











Pascal Estrutura de decisão  IF...THEN...ELSE



Qual a melhor linguagem para aprender a programar ! Dicas para escolher a linguagem mais adequada para quem está a iniciar:

1-Uma linguagem de programação para iniciantes!
Devemos ter consciência que ao longo da carreira como programador será sempre necessário aprender uma linguagem de programação nova, uma vez que todas têm vantagens e desvantagens.
Interessa começar por uma linguagem de programação que ajude a aprender lógica de programação! Só depois de aprender o básico, o raciocínio, é que deve aprender uma outra linguagem mais profissional (exemplo java, C, python, C#,). É um facto que algumas pessoas conseguem aprender programação começando a programar em linguagens profissionais, contudo estes casos estão relacionados com vários fatores, entre eles, a motivação, o domínio do raciocínio lógico.
2-Uma linguagem em português ou inglês.

2.1- Para algumas pessoas o inglês é um entrave, no entanto, não conheço linguagens de programação profissionais em português. O que faz com que o inglês seja incontornável. Se o objetivo é apenas aprender a logica/ raciocínio da programação , então o Visualg serve perfeitamente.

Exemplo:
algoritmo "BoasVindas"
var
nome: CARACTERE
inicio
ESCREVA ("Olá! Digite o seu nome: ")
LEIA (nome)
ESCREVA ("Seja bem vindo ", nome, "!")
fimalgoritmo

2.2- Se o objetivo final é passar para uma linguagem de programação profissional , então a melhor linguagem para começar é o pascal, uma vez que se assemelha mais à linguagem humana, facilitando a aprendizagem do raciocínio logico da programação, permitindo ainda que a passagem para uma linguagem profissional seja mais fácil.

Exemplo:
program BoasVindas;
var
nome : string;
begin
readln(nome);
writeln('Seja bem vindo ', nome,'!');
end.

https://www.color-hex.com/216-web-safe-colors/



Compilador - PascalZim ou Lazarus download
Template - Glossário
Template - Exercícios

Profcarlos2006@gmail.com


Estrutura do programa

program somadoisnum;
{programa que soma dois números e exibe o resultado no ecrã}
var n1, n2, result : integer;

begin
readln(n1);
readln(n2);
result := n1 + n2;
writeln(result);
end.



Apresentação aos alunos. Regras de funcionamento da sala de aula. Apresentação do programa da disciplina. Introdução à programação em pascal. Download e instalação do compilador Lazarus


Instruções

Instruções
Os 3 principais tipos de instruções:
Entrada : ReadLn
Atribuição : area:= base * altura / 2
Saída : WriteLn


EXPRESSÕES MATEMÁTICAS

+ adição ;

- subtração ;

* multiplicação ;

/ divisão ;

DIV divisão

writeln('2 + 5 = ' , 2+5);

Operadores aritméticos reais


Operadores aritméticos inteiros

adição

+


adição

+


subtração

-


subtração

-


divisão

/


divisão

Div


multiplicação

*


multiplicação

*

exemplo




Resto da divisão

mod

8 mod 2=0
7 mod 2=1






Aula2

Operadores


Bases do pascal

- Operadores.

- Precedência dos operadores.

Reais ------- div /
Inteiros --- div
Algumas Palavras Reservadas em Pascal:
Until; Boolean; Char; String; Case; Downto; And; While; Write; Do; End; Begin; Integer; Read; Or; For; To; Program; Real; Repeat; If; Else; Go To; Var; Array;

Desenvolver algoritmos aplicando operadores matemáticos com recurso a input e output






Aula3

Variáveis

Tipos de variáveis:

Char
String
Real
Integer
boolean

var result, potencia, base:real;
begin
base:=2;
potencia:=8;
result:=exp(potencia*ln(base));
writeln('',result:2:0);
readln();
end.

Desenvolver algoritmos aplicando operadores matemáticos e variáveis com recurso a input e output. Exercícios com strngs e caracteres.







Fluxogramas

Elementos básicos fluxograma 

Fluxograma é um tipo de diagrama.

É uma representação esquemática de um processo ou algoritmo, muitas vezes feito através de gráficos que ilustram de forma descomplicada a transição de informações entre os elementos que o compõem, ou seja, é a sequência operacional do desenvolvimento de um processo.







Resumo

Aulas 1,2,3

Download resumo .docx

Resumo de: Operadores, Atribuição e Variáveis.

Palavras Chave: Operador; Variável; Atribuir; Concatenar




Constantes

Nas linguagens de programação, as constantes são usadas para representar vários tipos de valores que permanecem imutáveis no programa.

PROGRAM exemplo;
CONST { Declaração de constantes }
PI = 3.1415926;

VAR { Declaração de Variáveis }
Raio,Area_da_Circunferencia : REAL;
BEGIN { Comandos do Programa }
write('Forneça o raio: ');
readln (Raio);
Area_da_Circunferencia := PI * ( Raio * Raio ); { Area = PI * R2 = PI * R * R }
writeln('Área = ',Area_da_Circunferencia);
writeln(PI);
readln;
END.







Aula4

Consolidação

Aula 4 (Fichas)


Comentários { bla, bla, ... } ou // bla, bla

Pascal Não é Case Sensitive (begin = BEGIN = BeGiN)

Funções aritméticas standard

SQR

SQRT

ABS

var x, y: integer;
z:real;
begin
x:=8;
y:=25;
z:=-3;
writeln('quadrado de x ', sqr(x) );
writeln('raiz quadrada de y ', sqrt(y) );
writeln('valor absoluto de z ', abs(z) );
readln;
end.

Consolidação dos conhecimentos adquiridos.

Resolução de exercícios práticos.



Estrutura de decisão - IF...THEN...ELSE

Aula5

Ciclo IF Estrutura Condicional

IF...THEN

SE...ENTÃO

Estrutura Condicional simples
SE = IF
ENTÃO = THEN
INÍCIO = BEGIN
FIM = END

var X, Y : Integer;
begin
Writeln ('Digite dois Números:'); { Mostra no ecrã a mensagem}
Readln (X, Y); { Lê os dois números }
If (X > Y) Then {Condição - SE X for maior que Y}
Writeln ('X é Maior que Y, e seu valor é = ', X);
end.

OPERADORES RELACIONAIS

Maior

>

Menor

<

Maior ou igual

>=

Menor ou igual

<=

Igual

=

Diferente

<>


Introdução às estruturas condicionais. Operadores relacionais. Resolução de exercícios relativos aos temas abordados.






Aula5.1

 



Operadores lógicos

Not

negação

if (n1>n2) then
if not (n1>n2) then

Maior é n1
Maior é n2

And

 e

As duas condições têm que ser verificadas

if (n1>n2) and (n1>6) then

N1 >n2 e maior que 6

Or

 ou

Qualquer uma das condições tem que ser verificada

if (n1>n2) or (n1>6) then


Xor

 ou exclusivo

Apenas uma das condições tem que ser verificada

if (n1>n2) xor (n1=8) then








Desafio

Desafio 1, 2 e 3

1- Fluxograma + código - Elabora um algoritmo que verifique se um determinado número está dentro de um determinado intervalo de valores (10 a 15)
1.1- Fluxograma + código - Restruture o algoritmo para que o intervalo de valores seja introduzido pelo utilizador.
1.1.1. Fluxograma + código - Caso o utilizador digite um intervalo ex.(15...10), o programa deve ordenar os números em ordem crescente e verificar se o numero digitado está dentro do intervalo.

2- Fluxograma + código - Elabora um algoritmo compare 2 números e verifique qual deles é maior.
2.1. Fluxograma + código - Reestrutura o algoritmo para que verifique também se os números são iguais

3. Fluxograma + código - Elabora um algoritmo que verifique se um número introduzido pelo utilizador é positivo ou negativo.
3.1. Fluxograma + código - Restruture o algoritmo para 2 números.

Solução


Debug com PascalZim

Debug com PascalZim (Evitar os inputs/readln)

F7


Aula6

Ciclo IF Estrutura Condicional

IF...THEN...ELSE

SE...ENTÃO...SENÃO

Estrutura Condicional composta

SE = IF
ENTÃO = THEN
SENÃO = ELSE
INÍCIO = BEGIN
FIM = END

var X, Y : Integer;
    begin
        Writeln ('Entre com dois Números:');
        Readln (X, Y);
       If ((X > Y) or (Y <> 0)) Then
            Begin
                Writeln ('X é Maior que Y OU y é diferente de 0');
                Writeln ('O Valor de X é =', X);
            End {FIM}
        else
            writeln ('FALSO nenhuma das condições propostas não se verifica');
        readln;
    end.

Estrutura condicional composta. Introdução aos operadores lógicos.

Resolução de exercícios relativos aos temas abordados.

Aula7

Exercícios de consolidação

Ciclo IF Estrutura Condicional

ELSE IF

SENÃO...SE

Estrutura Condicional composta

IF ... THEN
ELSE IF ... Then
ELSE

var a, b, c:real;
Begin
    readln(a, b, c);
        If (a>b) and (b>c)then
            writeln('maior a')
        else
        if
(b>a) and (b>c) then
            writeln('maior b')
        else
            writeln('maior c');
End.

Consolidação dos conhecimentos adquiridos.

Resolução de exercícios práticos. Estrutura condicional composta (ELSE IF).


Aula8

Exercícios de consolidação

Ciclo IF Estrutura Condicional

IF...THEN - IF...THEN - ELSE ELSE

SE...ENTÃO - SE...ENTÃO - SENÃO SENÃO

Estrutura Condicional Aninhada

A estrutura condicional aninhada é semelhante à estrutura condicional com AND

Var X, Y, A, B : Integer;
Begin
Readln (X,Y,A,B);
    If (X > Y) Then { Entrará no Próximo If apenas se a variável X for maior que a variavel Y }
        If (A > B) Then

            Writeln ('X é maior que Y e A é maior que B') {Sem ";"}
        Else Writeln ('A não é Maior que B') {Sem ";"}
    Else Writeln ('X não é maior que Y');
readln;
End.

Consolidação dos conhecimentos adquiridos. Resolução de exercícios práticos. Estrutura condicional composta aninhada (If---THEN IF...THEN).


uses crt;

clrscr

readkey

uses crt; {Usa a biblioteca CRT onde está a função ReadKey} Uses Crt;
A instrução (clrscr) usada para limpar o ecrã. Clrscr;
A instrução (readkey) pára o programa até que algo seja teclado.
Readkey;
A instrução (Delay) atrasa em milissegundos 1000=1s. delay (1000);


Desafio

Desafio 4

4- Fluxograma + código - Elabora um algoritmo que indique a nota qualitativa de um determinado aluno, tendo por base a nota quantitativa. O programa deve mostrar uma mensagem de "parabéns" no caso de o aluno ter sucesso ou "Tenta de novo" para o caso de insucesso.

//M.insuf <19
//insuf entre 20 e 50
//suf entre 50 e 75
//bom entre 75 e 90
// M.BOM >90

NOTA: o programa pode/deve ter 2 variáveis 1 do tipo real e outra do tipo string (variável string guardará a mensagem a mostrar ao utilizador).

4.1- Fluxograma + código - Restruture o algoritmo para que alerte o utilizador no caso de o valor introduzido ser superior a 100 ou inferior a 0.

4.1.1. Fluxograma + código - Restruture o algoritmo para que, caso se verifique o 4.1. dê oportunidade ao utilizador de reintroduzir a nota.

Solução






Algoritmo para análise

Uses Crt;

Label 1;

1:Clrscr;

Goto 1;

Readkey;


Program lesson4_Program1;
Uses Crt;
Label 1; { this is used with a goto statement }
Var Sel: String;
    N1,N2, Total : Real;
    YN : Char; { this is a character variable type, which holds single characters ONLY }
 Begin
        1:Clrscr;
        Total := 0; { always initialise integer/real variables }
        GotoXy(4,3);
        Writeln('1.Addition');
        GotoXy(4,4);
{ Coordenadas de posicionamento no ecrã }
        Writeln('2.Subtraction');
        GotoXy(4,5);
        Writeln('3.Exit');
        GotoXy(6,8);
        Write('Select: ');
        Sel := Readkey;

        If Sel = '1' {condition} Then
        Begin {more than one statement}
            ClrScr;
            Write('Input No.1:');
            Readln(N1);
            Write('Input No.2:');
            Readln(N2);
            Total := N1 + N2;
            Writeln('Addition: ',N1:2:3,' + ',N2:2:3,' = ',Total:2:3);
            Write('Press any key to continue...');
            Readkey;
            Goto 1; { this returns execution back to the beginning of the program (not recommended) }
        End; { Closing the if statement }

        If Sel = '2' Then { note that here we do not use an assignment statement }
        Begin
            ClrScr;
            Write('Input No.1:');
            Readln(N1);
            Write('Input No.2:');
            Readln(N2);
            Total := N1 - N2;
            Write('Subtraction: ');
            Write(N1:2:3,' - ',N2:2:3,' = ',Total:2:3);
            Write('Press any key to continue...');
            Readkey;
            Goto 1;
        End; {losing the if statement }

        If Sel = '3' Then
        Begin
            ClrScr;
            Write('Are you sure?(Y/N)');
            YN := Readkey;
            If YN = 'y' Then Halt; { 1 instruction, so no need of Begin..End }
            If YN = 'n' Then Goto 1; { the goto statement is not recommended for frequent use }
        End;
End.


Desafio

Desafio facultativo 1

Desafios IF...THEN...ELSE

Consolidação dos conhecimentos adquiridos. Resolução de exercícios práticos. Estrutura condicional CASE ... OF


Aula9

Estrutura Case

Ciclo IF Estrutura Condicional

CASE

CASE...OF

Case X Of

No comando CASE o seletor tem que ser do tipo char, integer ou boolean.

O case é muito utilizado na construção de menus

Program Pzim ;
Var a,b,op : Integer;
 Begin
    writeln('digite um numero para opção CASE 1,2 ou 3');
    readln(op);
   Case op Of // O case necessita de end
        1 : Begin
            Writeln ('Digitou CASE 1');
        End;
       

        2 : Begin
            Writeln ('Digitou CASE 2');
        End;
       
        3 : begin
            Writeln ('Digitou CASE 3');
            Writeln ('Neste CASE pode somar 2 numeros');
            readln(a,b);
            Writeln ('Soma dos numeros = ',a+b);
        end
        Else
            Writeln ('Não há CASE para ti');
   End; // Fim do CASE
 End.

Consolidação dos conhecimentos adquiridos. Resolução de exercícios práticos. Estrutura condicional CASE ...

Desafio

Desafio 5

5- Fluxograma + código - Com recurso ao CASE elabore uma calculadora que permita efetuar as operações entre 2 números, operações de + - X e /. Consoante a opção do utilizador.

5.1- Fluxograma + código - Restruture o algoritmo para que, na divisão, alerte o utilizador no caso de b=0, indicando que não é possível dividir por 0.

5.1.1. Código - Restruture o algoritmo para que, permita ao utilizador continuar a fazer cálculos. O programa apenas termina se o utilizador escolher a opção sair.

Solução

Aula10

Revisões


Acentuação no pascal (procurar letra na tabela ascii)
Writeln('Hoje ',chr(138),' dia de'); Hoje é dia de
Funções ORD e CHR
writeln('valor absoluto de z ', ord('A') );
writeln('valor absoluto de z ', chr(65) );

Program Program1a_Lesson10;
Uses Crt;
    Label Return ; {used respectively with the goto statement; beware of it}
    Var SEL : Integer;
    YN : Char;
Begin
    Return: Clrscr;
    Writeln('[1].PLAY GAME');
    WRITELN('[2].LOAD GAME');
    WRITELN('[3].MULTIPLAYER');
    WRITELN('[4].EXIT GAME');
    Writeln('note: Do note press anything except');
    Writeln('numbers; otherwise an error occurs!');
    Readln(SEL);
    If SEL = 1 then
        Begin
            Writeln('Are you able to create a game');
            Writeln('of yourself using pascal??');
            Delay(2000);
            Goto Return;
        end;
end.

Consolidação dos conhecimentos adquiridos. Resolução de exercícios práticos. Ficha de avaliação com consulta.


Aula11

Avaliação/ Revisões


Randomize;

trunc

sqrt

Program Variables;
Uses Crt;
Var a:String;{texts}
    b:Integer;{-32767..32768}
    c:Byte;{0..255}
    e:Word;{0..65535}
    z:integer;
Begin
    ClrScr;{clear screen}
    a:='Turbo Pascal';
    Randomize;{shuffling}
    b:=Random(3000);
    c:=13;
    e:=42000;
    z:=Random(6) ;
    writeln('',b ,' ', c, ' ',e, ' ',z );
    readln;
End.

Program Varx;

var
    i,k : integer ;
    x,y : real ;
    bb : boolean;
    car : char;
begin
    i:= 4 ;
    x:= 2.3 ;
    y:= 1 ;
    k:= trunc(x);
    y:= (y + sqr(x)) / 2 ;
    x:= i + k;
    bb:= true ;
    bb:= (y < x) or (3 >= k +         sqrt(i));
    bb:=(i>4);
    writeln('xxx',bb);
    readln;
end.

Program Program1a_Lesson10;
Uses Crt;
var x, y, z: integer;
begin
writeln('digite o valor de x');
read(x);
y:= 3;
if (x > 1) AND (sqrt(x) > 1) then
if (x > 2) OR ((x * y) div (x mod 2) > 2) then
z := (x mod 4)*y
else
z := x + 3
else if x+2 < 3then
z := x *y
else
z := y + x mod 3;
write(z);
readln;
readln;
end.

Consolidação dos conhecimentos adquiridos. Resolução de exercícios práticos. Ficha de avaliação.







Estruturas de repetição - Repeat until - While ... do - for ... to 10 do

Aula12

Estruturas de repetição

Repeat until

While ... do

for ... to 10 do

Estruturas de repetição

Repeat until

While ... do

for ... to 10 do

Programa que impreme números em ordem crescente de 1 a 10.

Programa que impreme números em ordem crescente de 1 a 10.

Programa que impreme números em ordem crescente de 1 a 10.

Program Pzim ;//9
var
ct:integer;
Begin
ct:=0;
    repeat
        ct:=ct+1;
        writeln('num ct.',ct);
    until (ct=10);
    writeln('Total ct.',ct);
End.

Program Pzim ;
var ct:integer;
Begin
Ct:=0;
  while (ct<=10) do
    begin
     writeln ('contador =  ',ct);
     ct:=ct+1;
    end;
End.

Program Pzim ;//11
var ct:integer;
Begin

Ct:=0;
  for ct:=1 to 10 do
    begin
     writeln('ordem crescente:', ct);
    end;
End.














Desafio
Desafio 6

6- Fluxograma + código - Com recurso aos ciclos de repetição elabore um algoritmo que permita calcular a tabuada de um número digitado pelo utilizador, o programa deve também perguntar o número de início e de fim da tabuada. (ex: Tabuada do 3 entre 5 e 21)

    6.1. Fluxograma + código - Com recurso ao ciclo while.

    6.2. Fluxograma + código - Com recurso ao ciclo Repeat.

    6.3. Fluxograma + código - Com recurso ao ciclo For.
Solução

Aula13

Revisões


while CONDIÇÃO do

Ciclo de repetição

Ciclo While

Contador


   

program whileLoop;
var
a: integer;
begin
   a := 10;
   while
a < 20 do
    begin
       writeln('O valor de a é: ', a);
       a := a + 1;
    end;
end


program whileLoop;
var
cont : integer;
begin
  cont := 1;
   while
cont < 11 do
    begin
      writeln('O valor de a é: ', cont);
      writeln('ESSG');
      cont := cont + 1;
    end;
  readln();
end.



Balanço das atividades desenvolvidas ao longo do primeiro período. Preenchimento das fichas de auto-avaliação.


Revisões de matéria dada. Introdução ao ciclo de repetição "While". Conceito de contador. Resolução de exercícios práticos.

Desafio
Desafio facultativo 2
Construa um programa que leia um conjunto de dados contendo altura e sexo (MASCULINO ou FEMININO) de N pessoas e calcule e escreva:

    - a maior e a menor altura do grupo e de quem é esta altura ( Se HOMEM ou MULHER )
    - a média de altura entre as mulheres
    - O número de homens e a diferença percentual entre estes e as mulheres

Output 1
Output 2



Solução

Aula13_1

Revisões

CicloWhile

PROGRAM FATORIAL;
Var
    n,valor,cont,cont2,fatorial:integer;
Begin
    writeln('Quantos numeros devem ser lidos?');
    read(n);
    for cont:=1 to n do
        begin
            writeln('Digite o número');
            read(valor);
            while(valor<0) do
                begin
                    writeln('Nao exite fatorial de nr. negativo');
                    writeln('Digite o número');
                    read(valor);
                end;
            fatorial:=1;
            if valor>1
                then begin
                        for cont2:=valor downto 1 do
                            begin
                                fatorial:=fatorial*cont2;
                            end;
                        end;
            writeln(fatorial);
            end;
End.

Desafio
Desafio 7

7- Fluxograma + código - Construa um programa que solicite ao utilizador um numero inteiro e identifique a quantidade de caracteres do número digitado. (Ciclo While, função trunc)

7.1. Fluxograma + código - Com recurso ao ciclo while. Construa um algoritmo que solicite ao utilizador o número de telemóvel. O programa deve verificar se o número tem 9 dígitos.

7.2. Fluxograma + código - Com recurso ao ciclo while. Construa um algoritmo que solicite ao utilizador o número de telemóvel. O programa deve verificar se o número tem 9 dígitos. Se o número não tiver 9 dígitos o programa deve parar por 3 segundos e de seguida volta a pedir o número ao utilizador.
Solução

Aula14

Ciclo de repetição

Ciclo repeat

Repeat

...

Programa

...

Until CONDIÇÃO


program repeatUntilLoop;
var
a: integer;
begin
 a := 10;
   repeat
    writeln('value of a: ', a);
    a := a + 1
   until a = 20;
end.


program FPProgT10_1;
uses crt;
var
sel:char;
begin
repeat
   write('Make A Selection (A or B): ');
   readln(sel);
until (sel = 'A') or (sel = 'a') or (sel = 'B') or (sel = 'b');

 case sel of
   'A','a': begin
      writeln('A Was Selected');
   end;
   'B','b': begin
      writeln('B Was Selected');
   end;
 end;
  writeln;
  writeln;
  writeln('Press <Enter> To Quit');
  readln;
end.







Introdução ao ciclo de repetição "repeat". Conceito de contador. Resolução de exercícios práticos.



Aula15



Desafio 8

8- Fluxograma - Construa os fluxogramas para os programas representados abaixo


For to do


for variável := valor-inicial to valor-final do

for ... to ... do

for ... downto ... do




program FPProgT10_1;
uses crt;
var
x:integer;
begin
    for x:=1 to 10 do
        writeln('ola ' , x);
readln;
end.


program FPProgT10_1;
uses crt;
var
x:integer;
begin
    for x:=10 downto 1 do
    writeln('ola ' , x);
readln;
end..




program FPProgT10_1;
uses crt;
var
x, y:integer;
begin
    for x:=1 to 10 do
        for y:=1 to 2 do
            writeln('ola ' , x);
readln;
end.


program FPProgT10_1;
uses crt;
var x,i,j:integer;
begin
        writeln('valor de i'); readln(i);
        writeln('valor de j'); readln(j);
    for x:=i to j do
    writeln('ola ' , x);
readln;
end.

Introdução ao ciclo de repetição for Loop. Resolução de exercícios práticos.

Conjugação dos ciclos estudados.





Desafio 9

9- Fluxograma + código - Construa um programa que solicite ao utilizador um número inteiro. Esse número inteiro deve estar entre 5 e 50. Se o utilizador digitar um número fora do intervalo o programa deve permitir ao utilizador voltar a inserir o número. (Ciclo Repeat)

9.1. Fluxograma + código - Altere o programa anterior tendo em conta o seguinte: Ex. Se no programa anterior (ponto 9) o utilizador digitou 6, então o programa deve, agora, dar oportunidade ao utilizador de digitar  6  números inteiros e verificar qual deles é o maior. (Ciclo For , Ciclo IF)

Solução

Aula16

PPTX intro. vetores

FicheiroVetorMatriz


VETOR Sintaxe:

<nome array>: array [dimensão]  of <tipo>; 

vet:array[1..6] of integer;


MATRIZ Sintaxe:

<nome array>: array  [dimensões] of <tipo>; 

mat:array[1..5,1..3] of integer; 


PROGRAM EJER81;
USES CRT;
VAR arrnum:ARRAY [1..5] of INTEGER;
VAR i:INTEGER;
BEGIN
  ClrScr;
  FOR i:=1 TO 5 DO
  begin
    arrnum[i]:=i*2;
    WRITELN('A posição do array ', i, '  tem o valor de  ',arrnum[i])
  end;
  readln;
END.

program xrray;
uses crt;
Var
myVar : Integer;
myArray : Array[1..6] of Integer;
Begin
  myArray[2] := 73;
  myArray[3] := 6;
  myArray[4] := 512;
  myVar := myArray[2];
  writeln(myvar, ' ', myArray[3]);
  writeln(myArray[4]);
  readln;
End.

arrnum[i] --- Valor do array

I ---------- Posição do array

Arrnum ----- Nome do array

EXEMPLO ------ WRITELN('A posição do array ', i, 'tem o valor de',arrnum[i]);

Revisões. Introdução aos arrays e vetores

 
Desafio 10
Vetores
unidimensional array
Desafio 10 - Fluxograma + código - Construa um programa que solicite ao utilizador as notas de 30 alunos e que calcule a respetiva média. (Ciclo For - Vetor)

Desafio 10.1 - Fluxograma + código - Altere o programa anterior para que indique as notas superiores à média. (Ciclo if)
Solução





Aula17

Desafio 11
Vetores
unidimensional array
Desafio 11 - Fluxograma + código - Construa um programa que:
{11.1. Preencher um vetor X de 20 posições por leitura, ou seja, o prog. Deve solicitar ao user os valores para preencher o vetor.}
{11.2. Mostrar o vetor obtido }
{11.3.output do menor elemento do vetor}
{11.4. output do maior elemento, e sua posição}
{11.5. output dos valores ímpares existem no vetor X }
Solução
Números primos Program Pzim ;
   const max_number = 2000000;
var n,i,j:longint;
    is_prime:array[2..max_number] of boolean;
begin
writeln('This program finds out all prime numbers up to a number n, by using the Sieve of Eratosthenes');
write('n='); readln(n);
{we first initialize the boolean array, marking all number as potential primes}
for i := 2 to n do is_prime[i] := true;
        {after initializing, we apply the sieve}
        for i := 2 to n do
         begin
          if (is_prime[i]) then
               begin
                write(i,' ');
    for j := 2 to trunc(n div i) do is_prime[i*j] := false; {this for loop marks all multiples up to n as being not prime}
   end;
 end;
End.


Desafio matriz bidimensional
a)  Observa o vídeo https://www.youtube.com/watch?v=PyVahsZQT-c
b) Altera o código do programa para que funcione no compilador pascal.
c) Analisa o funcionamento do programa.





Desafio 12 - Vetores
unidimensional array
For to do
For downto do

Desafio 12 - Fluxograma + código - Construa um programa que solicite ao utilizador n valores. Seguidamente o utilizador deve digitar os n valores que depois serão mostrados na ordem inversa.
Solução
Desafio 13 - Vetores
unidimensional array
Operações com conteúdo dos vetores
Desafio 13 - Fluxograma + código - Construa um programa que permita ler 5 valores inteiros e armazenar nas posições iniciais de um vetor de 10 posições. Nas posições seguintes, armazenar sucessivamente o dobro da primeira posição, o triplo da segunda posição, etc.  Mostrar os valores armazenados em cada posição do vetor
Solução
Desafio 14 - Vetores
unidimensional array
Operações com conteúdo dos vetores
Desafio 14 - Fluxograma + código - Construa um programa que:
Preencha um vetor X de 10 posições inteiras por leitura.
Preencha um vetor Y, também de 10 posições inteiras, por leitura.
Preencha um vetor V1 com a soma de X e y, em cada posição.
Preencha um vetor V2 com a diferença de X e Y, em cada posição.
Solução
Desafio 15 - Vetores
unidimensional array
Strings em vetores
Desafio 15 - Fluxograma + código - Construa um programa que solicite ao utilizador 6 nomes para armazenar num vetor. Depois de inseridos os nomes o programa deve:
Colocar o conteúdo da primeira posição na última, o da segunda na penúltima, e assim sucessivamente.
Solução
Desafio 16 - Vetores
unidimensional array
Ordenação em vetores
Desafio 16 - Fluxograma + código - Construa um programa que solicite ao utilizador 10 valores inteiros, em seguida o programa deve ordenar por ordem crescente os valores introduzidos.
Solução


GotoXY(10,10);

Program Example6;
uses Crt;
{ Program to demonstrate the GotoXY function. }
begin
ClrScr;
GotoXY(10,10);
Write('posicao coluna 10 linha 10');
GotoXY(50,20);
Write('posicao coluna 50 linha 20');
GotoXY(1,22);
readln;
end.

Continuação da aula anterior.

Construção do glossário em pascal.

Revisões. Introdução aos arrays e vetores


Aula18




Matrizes - Array


linha1
coluna1
linha1
coluna2
linha1
coluna3
linha2
coluna1
linha2
coluna2
linha2
coluna3

PPTX intro MAtrix

FicheiroVetorMatriz

program Matrix_1 ;

var

   m:array[1..2,1..3] of integer; // estrutura da matriz

   soma,contl,contc:integer;

Begin

     writeln('Digite os 6 valores');

     soma:=0;

     for contl:=1 to 2 do // 2 linhas

         for contc:=1 to 3 do // 3 colunas

             readln(m[contl,contc]);

     for contl:=1 to 2 do

         for contc:=1 to 3 do

             soma:=soma + m[contl,contc];

     writeln('Soma=',soma);

end.






MATRIZ Sintaxe:

<nome array>: array  [dimensões] of <tipo>; 

mat:array[1..5,1..3] of integer;


const

type


program MatrixZ;
const // declaração de constantes
N=3;  // N representa o limite da matriz
type  // Vou criar um "TIPO de variável" 
intMatrix=ARRAY[1..N,1..N] OF integer ;
var
i,j:integer;
matA:intMatrix; //intMatrix é do tipo de variável que criei
begin
  writeln('Valores na matriz.' );// Ler a matriz
    for i:=1 to N do
     for j:=1 to N do
      begin
        write('Valor da linha '    ,i,' coluna  '    ,j,': ' );
        read(matA[i][j])
      end;  
    // mostra os valores digitados na matriz
  for i:=1 to N do
  begin // permite mudar de linha após o fim da linha
    for j:=1 to N do
            write(matA[i][j],' ' );
          writeln
    end;
end.




Desafio 17 - Matrizes
array
Desafio 17 - Fluxograma + código - Construa um programa que solicite ao utilizador 9 números inteiros para preencher uma matriz 3x3(considere que não serão digitados valores duplicados).
17.1 - Depois da matriz preenchida o programa deve solicitar ao utilizador um número inteiro e escrever uma mensagem indicando se o valor digitado existe ou não na matriz.
17.1.1 -O  programa deve indicar a linha e coluna onde se encontra o  número  encontrado em 17.1.
17.2 -Altere o algoritmo para que caso o numero digitado já exista solicite ao utilizador que digite outro.

Solução

Desafio 18 - Matrizes
array
Desafio 18 - Fluxograma + código - Construa um programa que solicite ao utilizador 9 números inteiros para preencher uma matriz 3x3.
18.1 - Depois da matriz preenchida o programa deve somar os números que estão na diagonal principal da matriz (quando os indices da matriz são iguais).
18.2 - Altere o programa anterior de forma a que este mostre as posições da matriz que serão somadas.
s

Desafio 19 - Matrizes
array
Desafio 19 - Ler uma matriz 4x4, calcular e escrever as seguintes somas:
19.1. da linha 3
19.2. da coluna 2
19.3. de todos os elementos da matriz
ns

Desafio 20 - Matrizes
array
Desafio 20 -  Ler uma matriz G 3x3 e criar 2 vetores, VL e VC, de 3 elementos cada, contendo respectivamente as somas das linhas e das colunas de G. Escrever os vetores criados.
ns

Desafio 21 - Matrizes
array
Desafio 21 - Ler duas matrizes, A 4x6 e B 4x6, e criar:
21.1. Uma matriz S que seja a soma de A e B (A+B)
21.1. Uma matriz D que seja a diferença de A e B (A-B) Escrever as matrizes S e D.
ns

Desafio 22 - Matrizes
array
Desafio 22 - Ler uma matriz 4x4 de números inteiros, multiplicar os elementos da diagonal principal por um número inteiro, também lido, e escrever a matriz resultante. ns

Desafio 23 - Matrizes
array
Desafio 23 - Fazer um programa para ler ao final da manhã o fecho da caixa de uma loja, ou seja, o seu rendimento ao final da manhã. O mesmo deverá ser feito ao final da tarde. Este levantamento deve ser feito todos os dias da semana (de segunda-feira a sexta-feira). Ao final da semana, após feitas todas as leituras, descobrir e escrever o dia e o turno que teve maior rendimento. Obs.: Utilizar o conceito de matriz para resolver este exercício ns







Scalar
Definidos pelo utilizador
User difined

Enumerated
Subrange
Pointer
StructuredArray
Record
File
Set



Normas para elaboração de relatórios
Modelo de trabalho

Documento de referência
Regas para a criação de um relatório
Trabalho sobre Data Types em pascal

Aquando da elaboração do trabalho deves ter em conta que: A avaliação tem em conta o resultado final do trabalho mas também o trabalho desenvolvido dentro da sala de aula; O trabalho deve ser desenvolvido em Português de Portugal (pt-pt) e deve seguir as regras elementares (ver resumo das regras)

Pontos obrigatórios do trabalho:
- Glossário  Deve comtemplar todas as palavras relacionadas com Data Type (As palavras do glossário devem ser inseridas no glossário já existente, no entanto neste trabalho deve apenas constar a informação relativa aos Data Types do Pascal.
- Sheet Cheat  Deve incidir sobre o tema Data Types, incluindo os tipos  Standard.
- Devem ser aprofundados os temas File e Pointer.






Aula19

FicheiroVetorMatriz

Matrizes


program ex3;
var
matriz:array[1..2,1..2] of integer;
poslinha,poscoluna:integer;
Begin
writeln('Digite os valores');
for poslinha:=1 to 2 do
for poscoluna:=1 to 2 do
readln(matriz[poslinha,poscoluna]);
for poslinha:=1 to 2 do
for poscoluna:=1 to 2 do
writeln(matriz[poslinha,poscoluna]);
readln;
end.

1

2

3

4

Exercícios com vetores.

Aprofundamento dos conhecimentos sobre matrizes. Resolução de exercícios.







Info de 25/02/2016


Entrega do projeto pascal 04 de abril. Apresentação do trabalho dia 07 de abril.

Data limite para entrega da correção do teste 29 de fevereiro







Aula20

Revisões vetores aula16



Aula de revisões sobre vetores. Introdução ao JAVA






Aula21

Revisões matrizes aula19


program ex3;
var
vet:array[1..4,1..4] of integer;
posl,posc:integer;
Begin
writeln('Digite os valores');
for posl:=1 to 4 do
for posc:=1 to 4 do
readln(vet[posl,posc]);
begin
for posl:=1 to 4 do
for posc:=1 to 4 do
begin
if (posl=posc) then
writeln('linha 4 coluna 4 ',vet[posl,posc] );
end;
readln;
end;
end.

Aula de revisões Matrizes. Java, primeiro programa.






Aula Extra




Aula extra. Colaboração com a disciplina de IMEI






Aula22

Página JAVA JAVA

JAVA

package aulas;
import java.util.Scanner;
public class Aula11 {
public static void main(String[]args){
Scanner input=new Scanner(System.in);
double b, a, area; // Declaração de variáveis
System.out.println("digite o valor da base");
b=input.nextDouble(); // Lê o valor da variável b digitada pelo utilizador
System.out.println("digite o valor da altura");
a=input.nextDouble();
area = a * b;
System.out.println(" "+area);
}

}

Introdução ao JAVA. Instalação do compilador NetBeans e JDK. Primeiro programa.






Aula23

Building Applets

JAVA Applets

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package aulascon;

/**

*

* @author user

*/

import java.applet.Applet;

import java.awt.Graphics;

import java.awt.Color;

public class SimpleApplet extends Applet{

String text = "I'm a simple applet";

public void init() {

text = "I'm a simple applet";

setBackground(Color.cyan);

}

public void start() {

System.out.println("starting...");

}

public void stop() {

System.out.println("stopping...");

}

public void destroy() {

System.out.println("preparing to unload...");

}

public void paint(Graphics g){

System.out.println("Paint");

g.setColor(Color.blue);

g.drawRect(0, 0,

getSize().width -1,

getSize().height -1);

g.setColor(Color.red);

g.drawString(text, 15, 25);

}

}

Balanço das atividades desenvolvidas ao longo do segundo período. Preenchimento das fichas de auto-avaliação.







Estágio

Mapa de colocação

Documentos para o dossier de estágio (Em execução)

- Plano de Trabalho Individual.docx

- Ficha identificação aluno estagiário.doc

- PROTOCOLO_JRE.docx

- Relatório.docx

- Fichas Assiduidade_Avaliação.xlsx

- Curriculum vitae europeu site -- ( Minuta )

Nota: Os documentos do dossier de estágio devem ser impressos e organizados numa pasta (semelhante à apresentada na imagem).
























Aula24

Página JAVA JAVA


POO programação orientada a objetos

Classes && Objects

Behaviour && atribute

package aulascon;

class Minhaclass {

static void dizola() {

System.out.println("OLÁ mundo!");

}

public static void main(String[ ] args) {

dizola();

}

}

Revisões Java. Conceito de POO, Classes e Objects

Behaviour e atribute.




Formação Páginas web básico

Aula extra. Introdução ao funcionamento das páginas web. Ferramentas de edição e transferência de ficheiros. Linguagem de marcação HTML.

Aula25

Visual Basic



Introdução ao Visual Studio 2015.






Aula26




Balanço das atividades desenvolvidas ao longo do ano. Preenchimento das fichas de auto-avaliação.




Formação Android






Pré-requisitos