Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira |
||
|
||
|
|
||
Portugol ::: Dicas & Truques ::: Laços de Repetição |
Como usar o laço de repetição PARA da linguagem Portugol - Apostila de Portugol para iniciantes em Algorítmos e Lógica de ProgramaçãoQuantidade de visualizações: 550 vezes |
|
O laço de repetição PARA da linguagem Portugol é usado quando queremos repetir uma ou mais instruções de nosso código um DETERMINADO número de vezes. Isso quer dizer que esse laço de repetição é usado quando sabemos exatamente quantas vezes uma instrução ou grupo de instruções será repetida. Vamos começar com um exemplo básico? Veja um laço PARA que escreve "Gosto de programação" cinco vezes na saída do programa:
programa {
funcao inicio() {
// um laço PARA que escreve uma frase 5 vezes
para (inteiro i = 0; i < 5; i++) {
escreva("Gosto de programar\n")
}
}
}
Ao executar este código Portugol nós teremos o seguinte resultado: Gosto de programar Gosto de programar Gosto de programar Gosto de programar Gosto de programar Note que, em Portugol, a palavra chave que representa o laço, ou seja, a palavra "para" deve ser escrita sempre em letras minúsculas. Além disso, o laço para possui uma variável de controle que, na maioria das vezes, se chama "i" e é do tipo inteiro. Vamos ver mais um exemplo? Veja um laço PARA que escreve os números de 1 até 10 na saída do programa:
programa {
funcao inicio() {
// um laço PARA que conta de 1 até 10
para (inteiro i = 1; i <= 10; i++) {
escreva(i, " ")
}
}
}
Ao executar este código Portugol nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 E que tal contar de trás para frente, ou seja, de 10 até 1? Veja:
programa {
funcao inicio() {
// um laço PARA que conta de 10 até 0
para (inteiro i = 10; i >= 1; i--) {
escreva(i, " ")
}
}
}
Ao executar o código Portugol novamente nós teremos o seguinte resultado: 10 9 8 7 6 5 4 3 2 1 Para finalizar, veja algumas observações importantes em relação ao laço de repetição PARA da linguagem Portugol: a) O laço com variável de controle possui três partes. A inicialização da variável contadora, a definição do valor final do contador e a definição do incremento. Estas três partes são escritas juntas, no início do laço. b) A sintaxe é respectivamente a palavra reservada para, abre parênteses, a declaração de uma variável de controle, ponto e virgula, a condição a ser testada, ponto e virgula, uma alteração na variável de controle a ser feita a cada iteração, fecha parenteses, e entre chaves as instruções do programa. |
Java ::: Classes e Componentes ::: JTable |
Java Swing Avançado - Como exibir imagens nas células de uma JTable em suas aplicações Java SwingQuantidade de visualizações: 15356 vezes |
|
Nesta dica mostrarei como criar uma classe personalizada que estende a classe JLabel e implementa a interface TableCellRenderer. O objetivo é fornecer esta JLabel ao método setCellRenderer() de uma das colunas da JTable e exibir uma imagem ou foto ao lado do conteúdo da célula. Veja o resultado da figura abaixo: ![]() E aqui está o código Java Swing completo para o exemplo:
package arquivodecodigos;
import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
public class Estudos extends JFrame{
public Estudos(){
super("Exemplo de uma tabela simples");
// colunas da tabela
String[] colunas = {"Nome", "Idade", "Sexo"};
// conteúdo da tabela
Object[][] conteudo = {
{"Osmar J. Silva", "32", "Masculino"},
{"Maria Clara Gomes", "19", "Feminino"},
{"Fernando Gomes", "15", "Masculino"},
{"Carlos Vieira", "40", "Masculino"}
};
// constrói a tabela
JTable tabela = new JTable(conteudo, colunas);
// quero exibir imagens ao lado do texto da primeira coluna
TableCellRenderer tcr = new Imagem();
TableColumn column = tabela.getColumnModel().getColumn(0);
column.setCellRenderer(tcr);
tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
Container c = getContentPane();
c.setLayout(new FlowLayout());
JScrollPane scrollPane = new JScrollPane(tabela);
c.add(scrollPane);
setSize(400, 300);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class Imagem extends JLabel implements TableCellRenderer{
public Imagem(){
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column){
Icon imagem = new ImageIcon("C:\\estudos_java\\icon.gif");
// certifique-se da existencia da imagem "icon.gif" antes de executar
if(isSelected)
setBackground(table.getSelectionBackground());
else
setBackground(table.getBackground());
setIcon(imagem);
setText(value.toString());
return this;
}
public void validate() {}
public void revalidate() {}
protected void firePropertyChange(String propertyName,
Object oldValue, Object newValue) {}
public void firePropertyChange(String propertyName,
boolean oldValue, boolean newValue) {}
}
|
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Portugol - A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo PortugolQuantidade de visualizações: 1080 vezes |
|
Pergunta/Tarefa: A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo Portugol que calcule e exiba o valor do desconto e o valor a ser pago pelo cliente de vários carros. O desconto deverá ser calculado de acordo com o ano do veículo. Até o ano 2000 o desconto é 12%, e acima de 2000 o desconto é de 7%. Seu código deverá solicitar o valor do carro e o seu ano e aplicar o desconto correspondente. Além disso o sistema deverá perguntar se deseja continuar calculando descontos até que a resposta seja: "(N) Não". Informar o total de carros com ano até 2000 e o total geral a ser pago pelo cliente. Sua saída deve ser parecida com: Informe o valor do carro sem desconto: 25000 Informe o ano do carro: 2010 Desconto concedido: 1750 Valor do carro com desconto: 23250 Deseja adicionar mais carros? [S, N]: S Informe o valor do carro sem desconto: 30500 Informe o ano do carro: 1985 Desconto concedido: 3660 Valor do carro com desconto: 26840 Deseja adicionar mais carros? [S, N]: S Informe o valor do carro sem desconto: 16800 Informe o ano do carro: 1990 Desconto concedido: 2016 Valor do carro com desconto: 14784 Deseja adicionar mais carros? [S, N]: N Total de carros com ano até 2000: 2 Total geral a pagar: 64874 Veja a resolução comentada deste exercício usando Portugol Webstudio:
programa {
funcao inicio() {
// variáveis usadas na resolução do problema
real valor_carro, valor_desconto, valor_carro_desconto
real total_geral
inteiro ano
inteiro total_carros_ano_2000
caracter resposta
// vamos inicializar os valores de algumas variáveis
total_geral = 0
total_carros_ano_2000 = 0
// repete até que o usuário informe o valor "N"
faca {
// vamos ler o valor do carro sem desconto
escreva("\nInforme o valor do carro sem desconto: ")
leia(valor_carro)
// vamos ler o ano do carro
escreva("Informe o ano do carro: ")
leia(ano)
// o ano é menor ou igual a 2000
se (ano <= 2000) {
valor_desconto = valor_carro * (12.0 / 100.0)
// vamos somar mais este carro
total_carros_ano_2000 = total_carros_ano_2000 + 1
}
senao {
valor_desconto = valor_carro * (7.0 / 100.0)
}
// calculamos o valor do carro com o desconto
valor_carro_desconto = valor_carro - valor_desconto
escreva("Desconto concedido: ", valor_desconto)
escreva("\nValor do carro com desconto: ", valor_carro_desconto)
// somamos mais este valor ao total geral
total_geral = total_geral + valor_carro_desconto
// perguntamos se o usuário deseja adicionar mais carros
escreva("\nDeseja adicionar mais carros? [S, N]: ")
leia(resposta)
} enquanto((resposta != 'N') e (resposta != 'n'))
// mostramos os resultados
escreva("\nTotal de carros com ano até 2000: ", total_carros_ano_2000)
escreva("\nTotal geral a pagar: ", total_geral)
}
}
|
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string C# começa com uma determinada substring usando o método StartsWith() da classe StringQuantidade de visualizações: 11931 vezes |
|
Em algumas situações nós precisamos verificar se uma palavra, texto ou frase começa com uma determinada substring. Em C# isso pode ser feito por meio da função StartsWith() da classe String. Este método retorna true se a string começar com a substring informada e false em caso contrário. Veja um código C# completo no qual testamos se uma string começa com a substring "Gosto":
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
string texto = "Gosto de programar em C#";
if (texto.StartsWith("Gosto")) {
Console.WriteLine("O texto começa com \"Gosto\"");
}
else {
Console.WriteLine("O texto NÃO começa com \"Gosto\"");
}
Console.WriteLine();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: O texto começa com "Gosto" |
Delphi ::: VCL - Visual Component Library ::: TComboBox |
Como usar a propriedade Items da classe TComboBox do DelphiQuantidade de visualizações: 13417 vezes |
|
A propriedade Items da classe TComboBox representa um objeto da classe TStrings, a classe base para objetos que representam uma lista de strings. Isso quer dizer que podemos acessar a propriedade Items e usar todos os métodos e propriedades da classe TStrings, tais como Add(), Clear(), Delete(), Exchange(), etc. Veja, por exemplo, como usar o método Add() para adicionar um novo item no ComboBox:
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos adicionar um novo item ao ComboBox
comboBox1.Items.Add('Arquivo de Códigos');
end;
É possível obter um referência à propriedade Items para manipular os itens do ComboBox indiretamente. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
lista: TStrings;
begin
// vamos obter a lista de itens do ComboBox
lista := comboBox1.Items;
// vamos adicionar um novo item à lista
lista.Add('Arquivo de Códigos');
end;
Esta técnica é útil quando queremos inserir itens em um TComboBox a partir de uma função ou procedure. Veja:
// procedure personalizada para inserir itens em um TComboBox
procedure inserirItensComboBox(lista: TStrings);
begin
lista.Add('Arquivo de Códigos');
lista.Add('Osmar J. Silva');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos chamar a procedure que adiciona os itens no ComboBox
inserirItensComboBox(ComboBox1.Items);
end;
Para finalizar, veja como escrever uma função personalizada que constrói e retorna uma lista de strings. Note como usamos o objeto TStrings retornado para preencher o ComboBox:
// função personalizada que constrói e retorna uma lista
// de strings
function obterLista: TStrings;
var
lista: TStringList;
begin
lista := TStringList.Create;
lista.Add('Arquivo de Códigos');
lista.Add('Osmar J. Silva');
Result := lista;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos obter a lista de strings
ComboBox1.Items := obterLista;
end;
Observe que, embora o retorno seja TStrings, no corpo da função nós construímos um objeto da classe TStringList. Isso acontece porque TStrings é uma classe abstrata e, portanto, não podemos chamar seu construtor. Como TStringList herda de TStrings e é uma classe concreta, esta é a escolha mais óbvia. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







