Anda di halaman 1dari 63

Curso de Desenvolvimento de Software para Concursos

Profs. Diego Carvalho e Leon Sólon – Aula 13

LPHI

Galera, antes de começarmos, é importante saber que nesta aula vou considerar
que você já conhece o básico de lógica de programação, beleza? Assim poderemos
focalizar no que é específico da linguagem Delphi. Mas fiquem tranquilo,
começaremos com os conceitos básicos, e nas resoluções das questões tudo está
bem explicado, mas caso tenha alguma dúvida, estamos à disposição, ok?

Delphi teve início como uma linguagem de programação e ambiente de


desenvolvimento para a plataforma Windows pela empresa Borland, e utiliza a
linguagem Object Pascal para transformar código-fonte em linguagem nativa para
Windows (hoje para outros SOs).

Com o tempo, o Delphi incluiu suporte completo ao ActiveX; a uma biblioteca de


widgets orientada a objetos (chamada Visual Component Library - VCL e
Component Library for Cross-Platform - CLX); e um rápido ambiente de
desenvolvimento para aplicações que é extensível e customizável. Atualmente está
na versão 10, mantida pela empresa Embarcadero©.

A IDE provê diversas ferramentas para projeto, desenvolvimento, testes,


depuração, implantação, geração de relatórios – permitindo prototipação rápida.
Entre as ferramentas mais utilizadas para o desenho de sistemas de software estão
as apresentadas a seguir:

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 2 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

interface com o usuário, eles também podem ser elementos não visuais num
programa, como acesso a bancos de dados e temporizadores.

Os componentes tem três níveis de definição: funcional, técnica e prática. A partir


da perspectiva do usuário, um componente é algo que ele pode escolher a partir
de uma palheta de opções e utilizar numa aplicação a partir do Forms Designer
(gráfico) ou mesmo pela manipulação do código-fonte. Já na perspectiva do
desenvolvedor, ou criador dos componentes, o componente é um objeto em
código.

No ível mais imples, m mponente é qualquer bjeto e classe que tenha


como superclasse TComponent. Essa superclasse define a maioria dos
comportamentos básicos que todo componente deve ter, como a habilidade de
aparecer na palheta de componentes (Component palette) e como deve funcionar
no Forms Designer.

Há três principais diferenças entre desenvolver uma aplicação em Delphi e criar


componentes para serem utilizados numa aplicação:
• A criação de componentes não é visual (não há palhetas de opções para compor
o componente)
• Escrever componentes requer um conhecimento mais profundo de orientação
de objetos e dos objetos do arcabouço do Delphi
• Para escrever componentes mais convenções e regras devem ser observadas

Em resumo, o processo de criar componentes seguem os passos:


1. Criar uma unit para o novo componente
2. Derivar o tipo do componente a partir de um tipo de componente existente
(ao menos TComponent)
3. Adicionar propriedades, métodos e eventos conforme necessário
4. Registrar o componente no Delphi
5. Criar um arquivo de Help para o componente, seus métodos, propriedades
e eventos

A Borland criou um livro completo para criação de componentes, agora disponível


pela Embarcadero, mas não é necessário entrarmos num nível de detalhes tão
grande para provas de concursos (Delphi Component Writer’s Guide, Borland
Delphi 7 for Windows).

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 11 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

E aí, galera, Delphi avançando daria pra escrever livros e livros (como há tantos por
aí!), mas temos que lembrar que nosso objetivo é conhecer o necessário para as
provas de concursos. Apesar de ser uma linguagem já em bastante desuso, muitos
editais ainda cobram o conteúdo pois existem muitas aplicações legadas em Delphi.
Muitos dos assuntos mais avançados aqui tratados não foram cobrados em
concurso ainda, não hesitem em nos enviar para comentário caso achem questões
desse tipo. Vamos aos exercícios!

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 17 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

funcionalidades que usam o activex data objects (ADO), padrão Microsoft, para
acessar banco de dados por meio do OLEDB.

Comentários:

Questão mal escrita. O componente palette, é a paleta de componentes, ou seja a


“prateleira” que contém todos os componentes disponíveis no Delphi. Como já
vimos, existem diversos tipos de conexão, como o dbExpress. O OLEDB (Object
Linking and Embedding Database), é uma API desenvolvida pela Microsoft, que
permite o acesso a dados de uma variedade de fontes. Por sua vez os componentes
ADO facilitam a troca de dados com o servidor e o banco OLEDB e está disponível
nos componentes Delphi.

Gabarito: C

10. (CESPE 004 TRT 0ª GIÃO DF E O) ISTA JUDICIÁRIO


TECNOLOGIA A ORMAÇÃO) Conforme a sintaxe e a semântica da
linguagem Delphi, julgue os itens a seguir.
O código que se segue apaga um determinado elemento, aIndex, dentro de
um array chamado FArray.

Comentários:

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 22 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

Esta procedure tem um código super complicado, mas está fácil responder, perceba
que aIndex é um inteiro, não é um elemento do array, e sim o índice, que é utilizado
para o cálculo do elemento que será deletado.

Gabarito: E

11. (AOCP 012 CE-PA - A ESSOR ÉCNICO A A ISTA DE ISTEMAS) Na


linguagem de programação Delphi, os arquivos com extensão “.pas”, “.dfm” e
“.dpr” armazenam os códigos fontes, respectivamente, referentes a
A) unidades de programa, formulário, demais unidades do projeto.
B) demais unidades do projeto, unidades de programa, formulário.
C) formulário, demais unidades do projeto, unidades de programa.
D) recursos do projeto, formulário, todas as unidades de programa.
E) todas as unidades de programa, formulário, recursos do projeto.

Comentários:

Os arquivos .pas contêm unidades de programa, em object Pascal, os .dfm


representam formulários, e os .dpr são outras unidades do projeto.

Gabarito: A

12. (CESGRANRIO 010 LETROBRAS N ISTA DE ISTEMAS


ENGENHARIA OFTWARE) Analise o fragmento de código de um sistema
de controle de estoque desenvolvido em Delphi, apresentado a seguir.

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 23 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

Nesse fragmento, qual comando deve substituir a string XXX para correto
funcionamento do código?
A) TextFile
B) OpenTxt
C) GetFile
D) OpenRead
E) AssignFile

Comentários:

Questão de sintaxe, o comando que vincula um arquivo a uma variável do tipo File
(nesse caso TextFile) através de seu nome é o AssignFile.

Gabarito: E

13. (FCC 016 RF ª GIÃO (SP ) ÉCNICO UDICIÁRIO


INFORMÁTICA) A maneira correta de se utilizar uma string na linguagem de
programação indicada é:

A) Delphi:

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 24 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

Declare TestStr As String = "Tribunal Regional Federal";


if pos("Tribunal",TestStr)>0 then
ShowMessage("Tribunal foi encontrado na posição "+IntToStr(pos()))
else
ShowMessage(" Não foi encontrado Tribunal na string");

B) C#:
string msg1 = @NULL;
string msg2 = System.String.Empty;
string novoPath = @'c:\TRF3R\Processos';
System.String titulo = 'Tribunal Regional Federal';

C) Visual Basic:
Dim TestDataTempo As Date = #1/27/2016 5:04:23 PM#
Dim TestStr As String
TestStr = Format(TestDataTempo, "dddd, MMM d yyyy")

D) Delphi:
var temp = "vazio";
const string msg = " Tribunal Regional Federal ";
char[] vogais = { 'A', 'E', 'I', 'O', 'U'};
string alfabeto = new string(vogais);

E) Visual Basic:
Dim Str As String = 'Tribunal Regional Federal'
Dim Primeira As String = Middle(TestString, 1, 3)
Dim Meio As String = Middle(TestString, 14, 4)
Dim Ultima As String = Middle(TestString, 5)

Comentários:

Questão interessante que compara as 3 linguagens. Vamos ver os erros dos itens.
a) Delphi não utiliza a sintaxe Declare X as Tipo e sim X : Tipo.
b) A forma de declaração está certa C# nas 3 primeiras linhas, realmente é
“java like” “tipo x = inicialização”. Mas na quarta linha, o tipo é System.String o que
é errado, essa é a classe de manipulação de strings. Além disso, a inicialização com
‘@’ antes não é utilizada. O correto seria apenas null, “c:\TRF3R\Processos”,
“Tribunal Regional Federal”. System.String.Empty está certo, equivale a “” (vazio).
c) Certo. Sintaxe correta do Visual Basic.

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 25 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

Agora que você já entendeu o funcionamento da arquitetura, vamos ver um


exemplo de página em PHP. Perceba no trecho abaixo que uma página PHP
começa igualzinho a uma página HTML. Incluindo as mesmas tags. Isso é o que
chamamos de parte estática da página. A coisa fica interessante é dentro da tag
<?php ?>, é ela que indica que aquela parte do código é dinâmica, que é um
script PHP que deve ser interpretado pelo servidor.

<!DOCTYPE html>
<html>
<head>
<title> Minha primeira página PHP </title>
</head>

<body>

<h2> Cuidado! Estou aprendendo! </h2>

<form method="post">
<label> Nome: </label>
<input type="text" id="nome"/>
<input type="submit" value="Enviar" id="nome"/>

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 28 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

C) mysql&_connect ou mysql&_pconnect
D) mysql&&_connect ou mysql&&_pconnect
E) mysql_connect ou mysql_pconnect

Comentários:

O comando de acesso a uma base de dados MySQL é mysql_connect ou


mysql_pconnect. A diferença entre os dois é que no segundo, a conexão é
persistente. Essas funções estão depreciadas nas versões mais recentes, o uso agora
é unificado na função mysqli_connect() e para que a conexão seja persistente
utiliza-se o parâmetro p: como prefixo do host.

Gabarito: E

10. (FCC 010 CE-SP AGENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

O envio de e-mails, por meio de programas PHP, é responsabilidade da função


A) email.
B) mail.
C) &mail.
D) ismail.
E) &email.

Comentários:

A função é a mail(), repare que o examinador tenta confundir colocando simbolos,


em php os nomes de variáveis é que são precedidas por símbolos ($), os nomes
funções não (os parâmetros podem ser precedidos por & para indicar passagem pro
referência). Agora colocar email como alternativa foi maldade rs. Veja um exemplo
abaixo retirado da documentação.
// Send
mail('caffeinated@example.com', 'My Subject', $message);

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 40 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

Gabarito: B

11. (FCC 010 CE-SP ENTE DA ISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

Em uma função, escrita na linguagem de programação PHP, a passagem de


parâmetros por referência é feita por meio da utilização do caractere:
A) !
B) %
C) &
D) @
E) ?

Comentários:

Nas funções PHP a passagem por valor é o padrão. Caso você necessite passar um
parâmetro por referência, utilize o caractere &. Veja no exemplo abaixo.

<?php
function foo(&$var)
{
$var++;
}

$a=5;
foo($a);
// $a vale 6 aqui.
?>

Gabarito: C

12. (FCC 010 CE-SP ENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

A validação de uma data em PHP pode ser realizada pela função


A) getdate.
B) checkdate.
C) setdate.
D) isdate.

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 41 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

E) mktime.

Comentários:

A função checkdate valida uma data do calendário Gregoriano. Sua assinatura é a


seguinte: checkdate(month,day,year);

Gabarito: B

13. (FCC 010 CE-SP ENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

Uma função PHP em execução terminará imediatamente, retornando seu


argumento como valor, se for chamada, na função, a instrução:
A) this
B) null
C) return
D) this.value
E) this.return

Comentários:

O comando return encerra a execução de uma função retornando o argumento


como valor.

Gabarito: C

14. (FCC 010 CE-SP ENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

Para o recebimento dos dados de um formulário HTML, enviados por meio do


método GET, para uma página PHP, deve-se utilizar:
A) $_GET[“nome_text”]
B) $GET[“nome_text”]
C) _GET$[“nome_text”]
D) _$GET[“nome_text”]
E) _$_GET[“nome_text”]

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 42 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

Comentários:

Quando o formulário utiliza o método get, devemos utilizar a variável supergloblal


$_GET. Grave a sintaxe das variáveis superglobais.

Gabarito: A

15. (FCC 010 CE-SP AGENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

NÃO se trata de uma característica do PHP:


A) portábil.
B) baseado no servidor.
C) gratuito e com código aberto.
D) embutido no HTML.
E) baseado no cliente.

Comentários:

Conforme visto na arquitetura do PHP, é necessário que os scripts sejam


interpretados pelo servidor para que o código HTML que será apresentado ao
cliente sejam gerados.

Gabarito: E

16. (FCC 009 RT-3ª GIÃO MG) A A ISTA JUDICIÁRIO ECNOLOGIA


DA INFORMAÇÃO)

Dados os operadores “e” lógico: “and”, “&&” e “&” e os operadores “ou” lógico:
“or”, “||” e “|”, a ordem de precedência no momento do PHP avaliar as
expressões será na sequência
A) and, &&, &, or, || e |.
B) or, II, I, and, && e &.
C) and, or, &&, ||, & e |.
D) or, and, ||, &&, | e &.
E) &, &&, and, |, || e or.

Comentários:

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 43 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

11. (AOCP 012 CE-PA - ESSOR TÉCNICO LISTA DE ISTEMAS) Na


linguagem de programação Delphi, os arquivos com extensão “.pas”, “.dfm” e
“.dpr” armazenam os códigos fontes, respectivamente, referentes a
A) unidades de programa, formulário, demais unidades do projeto.
B) demais unidades do projeto, unidades de programa, formulário.
C) formulário, demais unidades do projeto, unidades de programa.
D) recursos do projeto, formulário, todas as unidades de programa.
E) todas as unidades de programa, formulário, recursos do projeto.

12. (CESGRANRIO 010 LETROBRAS ISTA DE ISTEMAS NGENHARIA


DE OFTWARE) Analise o fragmento de código de um sistema de controle de
estoque desenvolvido em Delphi, apresentado a seguir.

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 51 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

Nesse fragmento, qual comando deve substituir a string XXX para correto
funcionamento do código?
A) TextFile
B) OpenTxt
C) GetFile
D) OpenRead
E) AssignFile

13. (FCC 016 RF ª GIÃO (SP S) ÉCNICO CÁ O ORMÁTICA)


A maneira correta de se utilizar uma string na linguagem de programação
indicada é:

A) Delphi:
Declare TestStr As String = "Tribunal Regional Federal";
if pos("Tribunal",TestStr)>0 then
ShowMessage("Tribunal foi encontrado na posição "+IntToStr(pos()))
else
ShowMessage(" Não foi encontrado Tribunal na string");

B) C#:
string msg1 = @NULL;

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 52 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

11. (FCC 010 CE-SP GENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

Em uma função, escrita na linguagem de programação PHP, a passagem de


parâmetros por referência é feita por meio da utilização do caractere:
A) !
B) %
C) &
D) @
E) ?

12. (FCC 010 CE-SP ENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

A validação de uma data em PHP pode ser realizada pela função


A) getdate.
B) checkdate.
C) setdate.
D) isdate.
E) mktime.

13. (FCC 010 CE-SP ENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

Uma função PHP em execução terminará imediatamente, retornando seu


argumento como valor, se for chamada, na função, a instrução:
A) this
B) null
C) return
D) this.value
E) this.return

14. (FCC 010 CE-SP AGENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

Para o recebimento dos dados de um formulário HTML, enviados por meio do


método GET, para uma página PHP, deve-se utilizar:
A) $_GET[“nome_text”]

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 58 de 62


Curso de Desenvolvimento de Software para Concursos
Profs. Diego Carvalho e Leon Sólon – Aula 13

B) $GET[“nome_text”]
C) _GET$[“nome_text”]
D) _$GET[“nome_text”]
E) _$_GET[“nome_text”]

15. (FCC 010 CE-SP AGENTE A FISCALIZAÇÃO INANCEIRA UPORTE


DE WEB)

NÃO se trata de uma característica do PHP:


A) portábil.
B) baseado no servidor.
C) gratuito e com código aberto.
D) embutido no HTML.
E) baseado no cliente.

16. (FCC 009 RT-3ª GIÃO MG) ISTA JUDICIÁRIO ECNOLOGIA


DA INFORMAÇÃO)

Dados os operadores “e” lógico: “and”, “&&” e “&” e os operadores “ou” lógico:
“or”, “||” e “|”, a ordem de precedência no momento do PHP avaliar as
expressões será na sequência
A) and, &&, &, or, || e |.
B) or, II, I, and, && e &.
C) and, or, &&, ||, & e |.
D) or, and, ||, &&, | e &.
E) &, &&, and, |, || e or.

17. (FCC 016 RF ª GIÃO (SP S) ÉCNICO UDICIÁRIO


INFORMÁTICA)

Cookie é um arquivo texto que pode ser armazenado no computador do


usuário, normalmente com informações de sua navegação no site, para ser
recuperado posteriormente pelo servidor. Em PHP, um cookie criado pela
instrução setcookie("ck", "abcde", time() + 3600); poderá ser recuperado
utilizando a instrução
A) $_ISSET["ck"]
B) load_cookie ("ck")

Profs. Diego Carvalho e Leon Sólon www.estrategiaconcursos.com.br Pág. 59 de 62