C ::: C para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a transposta de uma matriz em C - Curso de C para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 1324 vezes |
|
A matriz transposta de uma matriz A é a matriz AT. Tal matriz é obtida quando copiamos os elementos da matriz A para uma outra matriz (ou para ela mesma) e trocamos de posição as linhas e colunas. Dessa forma, a primeira linha da matriz A se transforma na primeira coluna da matriz transposta, a segunda linha da matriz A se transforma na segunda coluna da matriz transposta e assim por diante. Em termos de notação, podemos dizer, de forma algébrica, que: ATji = Aij Onde i representa as linhas e j representa as colunas, tanto na matriz original quanto na matriz transposta. É importante estar atento à quantidade de linhas e colunas na matriz original e na matriz transposta equivalente. Assim, se a matriz original for 3x2, a matriz transposta será 2x3. Antes de vermos o código C, dê uma olhada na seguinte matriz de duas linhas e três colunas: \[A = \left[\begin{matrix} 3 & 5 & 7 \\ 1 & 2 & 9 \end{matrix}\right] \] Sua matriz transposta correspondente é: \[A^T = \left[\begin{matrix} 3 & 1 \\ 5 & 2 \\ 7 & 9 \end{matrix}\right] \] E agora veja o código C que declara uma matriz 2x3 e gera a matriz transposta 3x2:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(int argc, char *argv[]){
setlocale(LC_ALL,""); // para acentos do português
// vamos declarar e construir uma matrix
// 2x3 (duas linhas e três colunas
int matriz[2][3] = {{3, 5, 7}, {1, 2, 9}};
int i, j;
// vamos exibir os valores da matriz
printf("Elementos da matriz:\n");
for(i = 0; i < 2; i++){
for(j = 0; j < 3; j++){
printf("%5d ", matriz[i][j]);
}
printf("\n");
}
// como temos uma matriz 2x3, a transposta deverá ser
// 3x2, ou seja, três linhas e duas colunas
int linhas = 3; // linhas da matriz original
int colunas = 2; // colunas da matriz original
int transposta[linhas][colunas];
// e agora vamos preencher a matriz transposta
for(i = 0; i < 2; i++){
for(j = 0; j < 3; j++){
transposta[j][i] = matriz[i][j];
}
}
// vamos exibir os valores da matriz transposta
printf("Elementos da matriz transposta:\n");
for(i = 0; i < 3; i++){
for(j = 0; j < 2; j++){
printf("%5d ", transposta[i][j]);
}
printf("\n");
}
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado:
Elementos da matriz:
3 5 7
1 2 9
Elementos da matriz transposta:
3 1
5 2
7 9
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Exercícios Resolvidos de Java - Escreva uma classe Biblioteca que possui uma ArrayList de objetos da classe Livro. Forneça um menu para listar, cadastrar, pesquisar e excluir livrosQuantidade de visualizações: 678 vezes |
|
Pergunta/Tarefa: Escreva um programa Java contendo duas classes: Biblioteca e Livro. A classe Biblioteca deverá ter uma coleção de livros, ou seja, uma ArrayList de objetos da classe Livro. Além da coleção de livros a classe Biblioteca deverá conter um atributo nome, que será informado assim que a classe for instanciada. A classe Livro, por sua vez, deverá possuir os atributos id, titulo, autor e paginas. O atributo id deverá ser auto-incremento, isto é, 1 para o primeiro livro cadastrado, 2 para o segundo, e assim por diante. Além disso, a exclusão de livros deverá ser feita de acordo com o seu id ou título. Seu programa deverá exibir um menu de opções para as diversas operações da biblioteca. Uma boa opção em Java é usar a estrutura switch case para a criação do menu de opções. Atenção: todos os métodos de manipulação de livros deverão estar na classe Biblioteca, e não na classe principal do programa Java. Para finalizar, tanto a classe Biblioteca quanto a classe Livro deverão apresentar boas práticas de programação orientada a objetos: nomenclatura correta de classes, atributos e métodos, encapsulamento de dados e construtores. Sua saída deverá ser parecida com: ------------------------------------------------- :: Biblioteca Programação e Artes :: ------------------------------------------------- Bem-vindo(a) ao sistema. Escolha a opção desejada 1 - Novo Livro 2 - Listar Livros 3 - Pesquisar Livro 4 - Excluir Livro 5 - Sair Sua opção: 1 Título: JAVA PARA INICIANTES Autor: OSMAR J SILVA Quant Páginas: 480 O livro foi cadastrado com sucesso Veja a resolução comentada deste exercício em Java: Código para a classe Livro, que deve estar no arquivo Livro.java:
package estudos;
// definição da classe Livro
public class Livro {
private int id; // id do livro. Não pode repetir
private String titulo;
private String autor;
private int paginas;
// construtor vazio da classe Livro
public Livro() {}
// construtor cheio da classe Livro
public Livro(int id, String titulo, String autor, int paginas) {
this.id = id;
this.titulo = titulo;
this.autor = autor;
this.paginas = paginas;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public int getPaginas() {
return paginas;
}
public void setPaginas(int paginas) {
this.paginas = paginas;
}
}
Código para a classe Biblioteca, que deve estar no arquivo Biblioteca.java:
package estudos;
// imports necessários
import java.util.ArrayList;
import java.util.Scanner;
// definição da classe Biblioteca
public class Biblioteca {
String nome;
ArrayList<Livro> livros; // ArrayList para guardar os livros
// variável do tipo int para gerar IDs auto-incremento para os livros
int idUltimoLivroCadastrado = 0;
// construtor da classe
public Biblioteca(String nome) {
this.nome = nome;
this.livros = new ArrayList();
}
// exibe o menu de opções da biblioteca
public void exibirMenu(){
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// variáveis temporárias
Livro temp;
String pesquisaLivro;
// um laço infinito com as opções do menu
while(true){
System.out.println("\n-------------------------------------------------");
System.out.println(":: " + this.nome + " ::");
System.out.println("-------------------------------------------------");
System.out.println("Bem-vindo(a) ao sistema. Escolha a opção desejada\n");
System.out.println("1 - Novo Livro");
System.out.println("2 - Listar Livros");
System.out.println("3 - Pesquisar Livro");
System.out.println("4 - Excluir Livro");
System.out.println("5 - Sair");
System.out.print("\nSua opção: ");
// lê a opção do usuário
int opcao = Integer.parseInt(entrada.nextLine());
// um menu switch para ler as opções do menu
switch(opcao){
case 1: // vamos cadastrar um novo livro
System.out.print("\nTítulo: ");
String titulo = entrada.nextLine();
System.out.print("Autor: ");
String autor = entrada.nextLine();
System.out.print("Quant Páginas: ");
int quantPaginas = Integer.parseInt(entrada.nextLine());
// vamos gerar o id deste livro
int id = ++this.idUltimoLivroCadastrado;
// agora vamos criar um novo objeto da classe Livro
Livro livro = new Livro(id, titulo, autor, quantPaginas);
// e o adicionamos no ArrayList de livros
livros.add(livro);
// e finalmente mostramos uma mensagem de sucesso.
System.out.println("\nO livro foi cadastrado com sucesso");
break;
case 2: // vamos listar os livros cadastrados
if(livros.isEmpty()){
System.out.println("\nNão há nenhum livro cadastrado.");
}
else{
for(int i = 0; i < livros.size(); i++){
temp = livros.get(i); // obtém o livro da iteração atual
System.out.println("\nId: " + temp.getId());
System.out.println("Título: " + temp.getTitulo());
System.out.println("Autor: " + temp.getAutor());
System.out.println("Quant. Paginas: " + temp.getPaginas());
}
}
break;
case 3: // vamos pesquisar um livro
System.out.print("\nInforme o id ou título do livro: ");
pesquisaLivro = entrada.nextLine();
// chamamos o método que pesquisa o livro
temp = this.pesquisarLivro(pesquisaLivro);
if(temp == null){ // livro não encontrado
System.out.println("\nO livro náo foi encontrado.");
}
else{
// mostra o livro encontrado
System.out.println("\nId: " + temp.getId());
System.out.println("Título: " + temp.getTitulo());
System.out.println("Autor: " + temp.getAutor());
System.out.println("Quant. Paginas: " + temp.getPaginas());
}
break;
case 4: // vamos excluir um livro
System.out.print("\nInforme o id ou título do livro a ser excluído: ");
pesquisaLivro = entrada.nextLine();
// chamamos o método que pesquisa o livro
temp = pesquisarLivro(pesquisaLivro);
if(temp == null){ // livro não encontrado
System.out.println("\nO livro não foi encontrado.");
}
else{
// vamos excluir este livro
livros.remove(temp);
System.out.println("\nLivro excluído com sucesso.");
}
break;
case 5: // sai da aplicação
System.out.println("\nObrigado por usar a biblioteca\n");
System.exit(0);
default:
System.out.println("\nOpção inválida\n");
break;
}
}
}
// método que pesquisa um livro pelo id ou e retorna um objeto da classe Livro
public Livro pesquisarLivro(String pesquisaLivro){
Livro livro = null;
// este livro existe?
for(int i = 0; i < livros.size(); i++){
// pesquisa pelo id
if(Integer.toString(livros.get(i).getId()).equals(pesquisaLivro)){
return livros.get(i);
}
// pesquisar por título
else if(livros.get(i).getTitulo().contains(pesquisaLivro)){
return livros.get(i);
}
}
return livro;
}
}
E aqui está o código para a classe principal Estudos, no arquivo Estudos.java:
package estudos;
public class Estudos {
public static void main(String[] args) {
// vamos criar um novo objeto da classe Biblioteca
Biblioteca b = new Biblioteca("Biblioteca Programação e Artes");
// mostra o menu da biblioteca
b.exibirMenu();
}
}
|
C++ ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar o tipo de dados size_t da linguagem C++Quantidade de visualizações: 16167 vezes |
O tipo size_t é definido no arquivo stddef.h e em outros headers, e sua definição pode ser encontrada da seguinte forma:typedef unsigned long size_t; Este tipo é usado para definir tamanhos de strings e blocos de memória. Foi proposto pelo ANSI C. É comum encontrar size_t substituindo unsigned int ou unsigned long. Muito frequente também é ver este tipo recebendo o resultado de uma chamada ao operator sizeof. Veja:
#include <iostream>
using namespace std;
int main(){
// vamos obter a quantidade de bytes em um int
size_t tam = sizeof(int);
cout << "Um inteiro nesta arquitetura contém: " <<
tam << " bytes" << endl;
}
Ao executarmos este código nós teremos o seguinte resultado: Um inteiro nesta arquitetura contém: 4 bytes |
React ::: Elementos de Formulários HTML ::: input type text Element/Object |
Como obter o conteúdo de uma caixa de texto em React usando a função useRef() para acessar os elementos HTMLQuantidade de visualizações: 940 vezes |
|
Nesta dica mostrarei como podemos usar useRef() para criar uma referência para um elemento HTML <input type="text">. Em seguida nós vamos usar a propriedade current.value para retornar o conteúdo da caixa de texto e atualizar o estado nomeAtualizado, criado a partir da função useState(). Este código, embora simples, é o ponto de partida para aplicações React bem interessantes, pois não fazemos uso do evento onChange das caixas de texto para atualizar o estado da aplicação. Isso, como é fácil de se perceber, economiza os recursos gastos em processamento desnecessário. Veja o código para App.js:
// vamos importar o useState e useRef
import {useState, useRef} from 'react';
// função App() que será exportada
export default function App() {
// vamos criar uma referência para a caixa
// de texto. Veja que esta referência será
// usada na declaração do elemento input type text
const txtNome = useRef(null);
// vamos usar um estado para guardarmos o conteúdo
// da caixa de texto
const [nomeAtualizado, setNomeAtualizado] = useState('');
// aqui nós gerenciamos o evento onClick do botão
const tratarEventoClick = () => {
// vamos obter o conteúdo da caixa de texto
// usando "txtNome.current.value"
setNomeAtualizado(txtNome.current.value);
};
// e retornamos para renderização
return (
<div>
<input type="text"
id="nome" name="nome"
ref={txtNome}/>
<h2>Nome Atualizado: {nomeAtualizado}</h2>
<button onClick={tratarEventoClick}>
Atualizar Estado</button>
</div>
);
}
E aqui está o código para o index.js:
// vamos fazer os imports necessários
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
// definimos a raiz da aplicação React
const root = ReactDOM.createRoot(
document.getElementById('root'));
// e renderizamos a aplicação no navegador
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
Execute a aplicação React, digite um nome na caixa de texto e clique o botão Atualizar Estado. Somente neste momento é que o conteúdo da caixa de texto será transferido para o estado nomeAtualizado e refletido no elemento <h2>. |
Nossas 20 dicas & truques de programação mais populares |
|
C - Como concatenar apenas parte de uma string à outra string usando a função strncat() da linguagem C JavaScript - Como retornar o tamanho de uma string em JavaScript usando a propriedade length do objeto String JavaScript - Como retornar uma coleção de nós filhos de um elemento HTML usando a propriedade childNodes do DOM do JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




