Sei sulla pagina 1di 53

Python: listas

Rodrigo de Toledo
(adaptao do original do prof. Claudio Esperana)

Estruturas de dados
Maneira de organizar dados de maneira a facilitar seu acesso Algumas formas so clssicas:

Listas Arrays (vetores e matrizes) Tuplas (registros) rvores

Linguagens freqentemente possuem primitivas para

construo dessas estruturas de dados


Outras estruturas de dados mais complexas podem ser

construdas combinando as estruturas de dados clssicas

Listas em Python
So variveis que podem conter simultaneamente mais de um

valor, inclusive de diferentes tipos lista = [1, 'a', 'Rodrigo', 3.1415]


Na verdade, pode ser vista como uma implementao tanto de

listas como de arrays

Alm de acesso seqencial, suportam tambm acesso direto atravs de ndices

Listas so variedades de seqncias assim como strings e

portanto tm APIs semelhantes

Podem ser indexadas e fatiadas Podem ser concatenadas (+) e repetidas

Listas em Python
Entretanto, h diferenas importantes entre listas e

strings

Seqncia genrica X de seqncia de caracteres Elementos de listas podem ser alterados individualmente mas os de strings, no

Listas constituem o tipo de agregao de dados mais

verstil e comum da linguagem Python

Podem ser usadas para implementar estruturas de dados mais complexas como matrizes e rvores, por exemplo

Listas: constantes e ndices


Uma constante do tipo lista escrita entre colchetes

com os elementos separados por vrgula:


[] # lista vazia [1,2] # lista com 2 elementos
Os elementos de uma lista podem ser de qualquer

tipo, inclusive listas. Ex.:


lista = [1, 'a', 'Rodrigo', 3.1415]
Os elementos de uma lista podem ser acessados por

ndices como strings

O primeiro elemento tem ndice 0

O ltimo elemento tem ndice -1

Listas: constantes e ndices


>>> lista = [1, 'a', 'Rodrigo', 3.1415] >>> lista [0] 1 >>> lista [2]
'Rodrigo'

>>> lista [3]


3.1415

>>> lista [-1]


3.1415

>>> lista [0] = 2 >>> lista [2, 'a', 'Rodrigo', 3.1415]

Listas: Concatenao e Repetio


O operador + pode ser usado para concatenao e o

operador * para repetio


>>> >>> [0, >>> >>> [0, lista lista 0, 0, lista lista 0, 0, = [0]*4 0] = lista + [1]*3 0, 1, 1, 1]

Inicializando listas
No possvel atribuir a uma posio inexistente de

uma lista
>>> vetor = [] >>> vetor [0] = 1 Traceback (most recent call last): File "<pyshell#21>", line 1, in -toplevelvetor [0] = 1 IndexError: list assignment index out of range

Se uma lista vai ser usada como um array, isto , vai

conter um nmero predeterminado de elementos, conveniente inici-la


>>> >>> >>> [3, vetor = [0]*10 vetor [0] = 3 vetor 0, 0, 0, 0, 0, 0, 0, 0, 0]

Exemplo
Faa um programa que leia 15 nmeros e os imprima e ordem

inversa a qual foram lidos.


lista=[0]*15
i=0 while (i<15): lista[i]=input() i+=1 i=1 while (i<=15): print lista[-i] i+=1

Exerccios
1. 2.

3.

Faa um programa que leia as notas dos 50 alunos de uma turma e diga ao final quais notas ficaram acima da mdia da turma. (vetor contador): Faa um programa que leia diversos votos para 100 candidatos (votos entre 0 e 99) e ao final diga qual foi o candidato vencedor (considere que no h empate). Os votos terminam com um nmero invlido (negativo ou maior que 99). Obs: Altere o programa de modo a considerar a possibilidade de empates. Escreva um programa que leia uma lista de x inteiros seguida de uma lista de y caracteres, criando uma terceira lista que intercale os elementos das duas listas lidas

obs1: pergunte ao usurio x e y no incio obs2: a lista que for maior dever ser repetida sequencialmente ao final Exemplo: x=3, y=5, l1 = [1,2,3] e l2 = ['a','b','c','d','e'], o programa deve computar a lista [1,'a',2,'b',3,'c','d','e']

4.

DESAFIO: Faa um programa que leia as informaes dos 70 produtos de uma farmcia (cdigo, preo e quantidade em estoque). Em seguida permita ao usurio entrar com cdigo e quantidade que deseja comprar do produto at que seja entrado o cdigo 1. Para cada cdigo entrado diminua a quantidade do estoque (caso tenha o suficiente) se o cdigo for vlido, seno imprima mensagem de erro. Ao final da compra, diga o total a ser pago!

Sobre o desafio...
Para realizar o desafio anterior, entender os

conceitos de:

um nico ndice para diversos vetores busca do ndice index() tuplas

No futuro ser mais fcil tratar esse desafio:


Outros exerccios
1.

Faa um programa que leia um conjunto de notas (nota - tipo inteiro) de 20 alunos (uma nota por aluno) e imprima quantas notas iguais a 0, iguais a 1, iguais a 2, ... e iguais a 10.

2.

Faa um programa que leia 100 valores reais da entrada e identifique o valor mais prximo da mdia. Exemplo supondo quatro valores: 2.5 7.5 10.0 4.0 mdia = 6.0 (no deve ser impresso) valor mais prximo da mdia = 7.5 (resultado a ser impresso)
Faa um programa que conte a quantidade de cada uma das letras (sem levar em conta as maisculas e minsculas) digitadas em um texto (vetor de 26 posies).

3.

Lista de tamanho indefinido

Lista de tamanho indefenido


s vezes no sabemos em tempo de programao

qual deve ser o tamanho da lista (exemplo: leia 50 notas leia notas at uma negativa).
Nesse caso a lista deve ir crescendo (ou diminuindo)

de acordo com a necessidade.


Precisaremos de:

len: para saber tamanho do vetor del: para retirar um elemento da lista append: para acrescentar

Deletando elementos
O operador del pode ser usado para remover

elementos de uma lista Ex.:


>>> lista [11, 22, 33, 'Rodrigo'] >>> del lista [2] >>> lista [11, 22, 'Rodrigo'] >>> del lista [2] >>> lista [11, 22]

Len, min e max


len (lista) retorna o nmero de elementos de lista
min (lista) e max (lista) retornam o menor/maior

elemento de lista Ex.:


>>> >>> 1 >>> 6 >>> 99 >>> 'c' lista = [55, 1, 22, 99, 3, 4] min (lista)

len (lista)
max (lista)

max (['a', 'b', 'c'])

min e max
Na verdade, min e max podem ser usados tambm com

vrios argumentos ao invs de uma lista


Ex.: >>> min (1,2,3,4) 1 >>> max (3,4,5) 5 >>> max ([],[1],['a']) ['a']

Mtodo APPEND
append(elemento)

Acrescenta o elemento no fim da lista Observe que a operao altera a lista, e no simplesmente retorna uma lista modificada Ex.:
>>> >>> >>> [1, lista = [1,2] lista.append(3) lista 2, 3]

Exemplo
Leia uma sequncia de nmeros INTEIROS positivos terminada por

um nmero NEGATIVO, guardando-os num vetor. Remova do vetor os nmeros PARES. Ao final, imprima o vetor!
lista = [] num = input() while (num>=0): lista.append(num) num=input() i=0 while i<len(lista): if lista[i]%2==0: del lista[i] else: i+=1
print lista

Exerccios
1.

Faa o programa do jogo: Acerte os nmeros.

Inicialmente, leia diversos nmeros inteiros entrados pelo dono da casa de aposta, guardando numa lista.

Termina com nmero negativo Caso acerte um dos nmeros da lista, informe do acerto e diga quantos nmeros faltam acertar. O programa termina caso o apostador erre 10 vezes ou at ele acertar todos os nmeros.

Em seguida o apostador poder entrar com vrios nmeros para verificar o seu acerto.

2. 3.

Altere o programa anterior para guardar os nmeros sem que haja repetio, ou seja, caso o dono da casa de apostas tenha entrado com um nmero que j exista, ignore-o. DESAFIO: Faa um programa que mantenha o estoque do hortifruti Leguminosas. Apresente um menu com as seguintes opes: (a) inserir novos produtos (b) acrescentar no estoque (c) baixar do estoque (d) listar produtos com estoque baixo (e) listar estoque de todos os produtos (f) sair!

Para cada produto inserido, ler nome, cdigo e quantidade inicial Para acrescentar ou baixar do estoque, ler cdigo e quantidade Quando der baixa no estoque, verificar se no est negativo, nesse caso, avisar ao usurio que sero baixados apenas a quantidade atual no estoque (zerando esse produto) Estoque baixo significa que h apenas 5 ou menos produtos

Fatias...

Listas: fatias (slices)


A notao de fatias tambm pode ser usada,

inclusive para atribuio:


>>> lista = [1, 'a', 2+3j, ['ab', 'CD']] >>> lista [1:] Lista de lista, ['a', (2+3j), ['ab', 'CD']] veremos isso posteriormente! >>> lista [:1] [1] >>> lista [1:2] ['a'] >>> lista [0:-1] [1, 'a', (2+3j)]

Listas: atribuio a fatias (e insero)


A atribuio a uma fatia requer que o valor atribudo seja uma

seqncia (uma lista ou uma string, por exemplo) A atribuio substitui os elementos da fatia pelos da seqncia (INSERO)
>>> lista = [1, 'y', ['ab', 'CD']] >>> lista [1:1] = ['z'] >>> lista [1, 'z', 'y', ['ab', 'CD']] >>> lista [1:3] = [['x']] >>> lista [1, ['x'], ['ab', 'CD']] >>> lista [1:-1]= [2,3,4] >>> lista [1, 2, 3, 4, ['ab', 'CD']] >>> lista [:2] = 'xyz' >>> lista ['x', 'y', 'z', 3, 4, ['ab', 'CD']]

Inserindo lista em lista


Tambm possvel inserir uma varivel lista na

outra:
>>> var1 = ['a', 'b', 'c', 'd', 'x'] >>> var2 = [6,7] >>> var1[2:2] = var2 >>> var1 ['a', 'b', 6, 7, 'c', 'd', 'x']

Incrementos em Fatias
possvel usar um terceiro nmero na notao de

fatias designando o incremento

Default 1 , ou seja, toma os elementos de um em um do menor para o maior ndice Pode-se usar qualquer nmero inteiro diferente de 0

a[0:10:2] retorna uma lista com os 10 primeiros elementos de a tomados de 2 em 2 (5 elementos, no mximo) a[5:0:-1] retorna uma lista com os 5 primeiros elementos de a tomados da direita para a esquerda

Obs.: Esta notao s existe nas verses de Python

a partir da 2.3

Incrementos em Fatias
Exemplo >>> a = ['a', 2, 3, 'd', 'x']

>>> a ['a', >>> a ['x', >>> a ['d',

[:3:2] 3] [::-1] 'd', 3, 2, 'a'] [3:0:-2] 2]

Incrementos em Fatias
Se um incremento de fatia diferente de 1, uma

atribuio fatia deve ter o mesmo nmero de elementos:


>>> l >>> l >>> l ['x', >>> l = [1,2,3,4,5] [0::2] = ['x','y','z'] 2, 'y', 4, 'z'] [0::2] = [6,7]

Traceback (most recent call last): File "<pyshell#17>", line 1, in -toplevell [0::2] = [6,7] ValueError: attempt to assign sequence of size 2 to extended slice of size 3

Alguns mtodos da classe list


sort(cmp=None, key=None, reverse=False) Ordena a lista Os argumentos so opcionais. Por default, a lista ordenada crescentemente Ex.:
>>> >>> >>> [1, lista = [9,8,7,1,4,2] lista.sort() lista 2, 4, 7, 8, 9]

Alguns mtodos da classe list


sort(cmp=None, key=None, reverse=False) possvel obter a ordem inversa, passando True para o argumento reverse Ex.:
>>> >>> >>> [9,

lista = [9,8,7,1,4,2] lista.sort(reverse=True) lista 8, 7, 4, 2, 1]

OBS.: A notao acima permite passar um argumento sem especificar os anteriores, mas poderamos ter escrito:
>>> >>> >>> [9, lista = [9,8,7,1,4,2] lista.sort(None,None,True) lista 8, 7, 4, 2, 1]

Exerccio
Em uma universidade a fila do bandejo funciona da seguinte

forma:

As filas comeam a se formar pela manh. At s 11h, horrio de abertura do restaurante, alunos podem guardar lugar para no mximo 3 outros colegas, depois disso a fila congelada.

Faa um programa que: Leia uma fila de alunos (matrcula) at que seja entrada uma matrcula negativa (s 11h). Imprima a fila inicial. Para cada aluno, pergunte para quantas pessoas ele est guardando lugar na fila e se ele ir continuar na fila (para esta pergunta ele dever responder S ou N). Leia a matrcula dos alunos a serem inseridos e remova aqueles que vo sair da fila. Imprima a fila final. Use uma nica fila!!!

for in range

Operador in
Permite saber se um elemento pertence a uma lista Serve tambm para strings Ex.:
>>> lista = [1, 'a', 'bc'] >>> 1 in lista True >>> 2 in lista False >>> 'b' in lista False >>> 'b' in lista[2] True >>> 'bc' in 'abcd' True

A funo range
Retorna uma progresso aritmtica de inteiros numa lista
Forma geral: range (incio, parada, incremento) incio (opcional) o primeiro valor a ser gerado (default: 0) parada o limite da progresso: a progresso termina no ltimo valor antes de parada incremento (opcional) o passo da progresso (default:1) Ex.:
>>> [0, >>> [2, >>> [5, range(3) 1, 2] range(2,5,2) 4] range(5,2,-2) 3]
>>> range (2,5,-2) [] >>> range (5,2,2) []

Comando for Assim como while, o comando for um


comando de repetio (loop)
Permite iterar sobre os elementos de uma lista Forma geral: for var in lista : comandos

Os comandos so repetidos para cada valor de lista Durante a repetio, var possui o valor corrente da lista

Uma grande utilidade da funo range construir a

lista de iterao
Ex.:
>>>for i in range(1,7): print i, 1 2 3 4 5 6

Quando usar for ou while?


Duas situaes distintas que precisam de comando de repetio: Quando se deseja repetir um bloco de comandos uma quantidade de vezes pr-determinada (antes de chegar ao bloco). USO DO FOR IDEAL! Quando no se sabe a quantidade de vezes antes de entrar no bloco de comandos, havendo apenas uma condio para o fim do loop. USO DO WHILE IDEAL! Na verdade existe uma terceira situao: Quando h pelo menos duas condies para trmino da repetio, uma determinada e outra indeterminada Exemplo: Faa a leitura das notas de no mximo 30 alunos de uma turma (a entrada termina se for digitada uma nota negativa ou se j foram entradas as 30 notas). Ao final diga a mdia da turma.

Rever exerccios, propor o uso de for...

Exemplo
Condio pre-determinada:

Leia a nota de 30 alunos de uma turma

Condio indeterminada: Combinados:

Exerccios
Faa um programa que leia cdigo de produto, preo

e quantidade vendida de 1881 produtos e informe os 10 produtos (cdigo e preo) responsveis pelo maior faturamento.
Modifique o programa anterior para que a leitura

termine com cdigo invlido (cdigo vlido varia de 10000 at 99999, inclusive os extremos). Ou seja, no necessariamente haver 1881 produtos.

Alguns mtodos da classe list


count(elemento) Retorna quantas vezes o elemento aparece na lista Ex.: extend(lista2) Acrescenta os elementos de lista2 ao final da lista OBS.: Altera a lista ao invs de retornar a lista alterada Ex.:
>>> >>> >>> [1, lista=[1,2] lista.extend([3,4]) lista 2, 3, 4] >>> [1,2,3,1,2,3,4].count(1) 2

Alguns mtodos da classe list


index(elemento) Retorna o ndice da primeira ocorrncia de elemento na lista Um erro ocorre se elemento no consta da lista Ex.:
>>> lista = [9,8,33,12] >>> lista.index(33) 2 >>> lista.index(7)
Traceback (most recent call last): File "<pyshell#3>", line 1, in -toplevellista.index(7) ValueError: list.index(x): x not in list

OBS: use in para ter certeza que o elemento existe na lista!

Alguns mtodos da classe list


insert(indice, elemento) insere elemento na lista na posio indicada por ndice Ex.:
>>> >>> >>> [0,

lista = [0,1,2,3] lista.insert(1,'dois') lista 'dois', 1, 2, 3]

Como o extend, altera a lista ao invs de retornar a lista

O valor retornado None!

Atribuies a fatias servem para a mesma finalidade mas so menos legveis


>>> >>> >>> [0, lista = [0,1,2,3] lista [1:1] = ['dois'] lista 'dois', 1, 2, 3]

Alguns mtodos da classe list


pop(ndice) Remove da lista o elemento na posio ndice e o retorna Se ndice no for mencionado, assumido o ltimo Ex.:
>>> >>> 4 >>> [1, >>> 2 >>> [1, lista = [1,2,3,4] lista.pop() lista 2, 3] lista.pop(1) lista 3]

Alguns mtodos da classe list


remove(elemento) Remove da lista o primeiro elemento igual a elemento Se no existe tal elemento, um erro gerado Ex.:
>>> lista = ['oi', 'alo', 'ola'] >>> lista.remove('alo') >>> lista ['oi', 'ola'] >>> lista.remove('oba') Traceback (most recent call last): File "<pyshell#24>", line 1, in -toplevellista.remove('oba') ValueError: list.remove(x): x not in list

OBS: use in para ter certeza que o elemento existe na lista!

Alguns mtodos da classe list


reverse() Inverte a ordem dos elementos da lista Ex.:
>>> >>> >>> [3, lista=[1,2,3] lista.reverse() lista 2, 1]

Exerccio
Faa um programa para cadastrar os alunos da turma de Python. O programa dever apresentar um

menu de opes ao usurio contendo: a. incluso b. excluso c. listagem geral d. listagem acima nota e. listar aluno f. trocar de nota g. fim Regras: Para cadastrar um aluno, dever ser realizada a leitura de sua matrcula e sua nota. Para excluir um aluno, apenas sua matrcula dever ser pedida. A listagem geral dever listar todos os alunos matriculados. A listagem por nota dever listar todos os alunos acima de uma determinada nota. Listar um aluno significa mostrar a nota de um aluno. Para trocar a nota de um aluno, necessrio apenas a sua matricula e sua nova nota. Observaes:

A listagem dever ser mantida sempre ordenada (dica: insira ordenado durante a leitura). GRANDE DESAFIO: crie uma opo a mais que seria listar alunos por ordem de notas. Crie um vetor auxiliar contendo os ndices dos vetores alunos e notas, para que no seja necessrio reordenar os vetores a cada listagem de notas e alunos.

Exerccio UPA
Faa um programa para controlar o atendimento da emergncia de uma UPA

(Unidade Python de Atendimentos).

As seguintes regras de precedncia devem ser respeitadas toda vez que h um mdico disponvel:

Todo caso urgente tem precedncia mxima e sero atendidos em ordem de chegada. Caso no haja ningum na fila de urgncia:
Pessoas acima de 65 anos devem ser atendidas, a prioridade deve ser por idade (o mais velho primeiro). Crianas de at 8 anos por ordem de chegada. Mas ateno, enquanto houver mais de 5 crianas, ento elas tm precedncia em relao aos idosos (para evitar tumulto). Demais pessoas devem ser atendidas em ordem de chegada.

O seu programa deve manter quatro filas (urgentes, idosos, crianas e demais). As lista guardam a identidade dos pacientes (valor inteiro). No caso dos idosos, deve-se usar uma lista auxiliar com as idades. O programa dever manter o seguinte menu:

(a) Registro de paciente:


Ler identidade, idade e urgncia (s ou n). Encaminhar o paciente para a fila correta. Baseado nas regras acima, dizer quem o prximo (mostrar identidade) e retir-lo da fila Imprimir as quatro filas, total de atendimentos e sair do programa

(b) Proximo paciente:

(c) Troca de planto:

Exerccio nomes
Faa um programa que leia uma srie de nomes completos (termina quando for

inserido um nome vazio). Em seguida, o programa dever dizer para cada primeiro nome diferente, quantas vezes ele apareceu.

Ex:

Entrada:
OTAVIO HENRIQUE FLAESCHEN OLIVEIRA PAULO EDUARDO ANDRADE RODRIGUES DA SILVA PAULO FELIPE NUNES DE LIMA OTAVIO SECKLER MACHADO MATHEUS SOARES DA SILVA NICOLAS D AURIA OCTAVIO LACERDA DE ALMEIDA PAULA ALVES BESSA PAULO RICARDO MORAIS SHOR MATHEUS GALLUZZI MALAFAIA

Sada:
MATHEUS 2 NICOLAS 1 OCTAVIO 1 OTAVIO 2 PAULA 1 PAULO 3

Exemplo: notas[4][3]=7.5;

Matrizes
Exemplo: Calcule as mdias das turmas de uma escola e, ao final,

exiba as notas dos alunos da turma com a maior mdia.


Para representar os dados do problema descrito acima poderamos

usar tantos vetores quanto fosse o nmero de turmas existentes no colgio.


Porm, seria ideal uma estrutura de dados que armazenasse todas

as notas de todas as turmas, e que pudesse ser referenciada pelo conjunto, ou pelo conjunto das notas de uma turma, ou por cada nota individualmente:

Notas
0 1 2 3 5,0 7,3 5,7 2,4 3,0 2,2 1,8 4,9 8,0 5,6 6,4 6,0 .......... .......... ........... .......... 9,5 8,0 5,9 3,8

10,0
0

9,5
1

3,0
2

..........
.........

4,0
49

Exemplo: notas[4][3]=7.5;

Matrizes
Listas podem ser usadas para guardar matrizes Uma matriz um tipo de dado usado para representar

uma certa quantidade de valores homogneos de natureza bidimensional (na verdade, podem ser multidimensionais). Podemos imaginar uma matriz como sendo uma lista, onde cada elemento dessa lista tambm uma lista.
Logo, para referenciarmos um elemento em uma matriz

precisamos de dois ndices: o primeiro para selecionar a lista (linha) e o segundo para selecionar o elemento da lista previamente selecionada (coluna).

Exemplo:

notas[4][3]=7.5

Matrizes
Percorrendo matrizes:

So necessrias duas estruturas de repetio aninhadas (while ou for) Por exemplo, a estrutura de repetio mais externa percorrer as linhas da matriz, enquanto a estrutura de repetio mais interna percorrer os elementos (colunas) da linha corrente.

Exemplo: notas = [[5,6,7],[9,8,7],[10,9,8]] for i in range(3): for j in range (3) : print notas[i][j]

Inicializando uma matriz:

Por exemplo, podemos criar uma matriz-identidade de 3x3 com o cdigo: m = [] for i in range(3): m.append([0]*3) m[i][i]=1

Exerccio
Escreva um programa para computar o produto de duas matrizes m1

e m2. Seu programa deve comear lendo os tamanhos das matrizes e verificando se so de tamanhos compatveis para multiplicao. Em seguida faa a leitura preechendo os valores das matrizes m1 e m2. Finalmente faa o clculo matemtico, imprimindo a matriz final no formato tradicional (linhas e colunas alinhadas, use /t).

Exerccios Matriz
Uma pista de Kart permite 10 voltas para cada um dos 6 corredores.

Faa um programa que leia todos os tempos em segundos e guarde em uma matriz 6 x 10. Ao final diga:

De quem foi a melhor volta da prova e em que volta Classificao final em ordem (1 o campeo) Qual foi o piloto mais regular? Qual foi a volta com a mdia mais rpida?

Uma editora quer saber o relacionamento entre seus autores. Faa

um programa que:

Dado o total de livros da editora (lido no incio), leia para cada livro da editora, o nome dos autores.

Cada livro pode ter mais de um autor Para facilitar, basta guardar o primeiro nome Lista terminada por linha vazia No precisa ler o nome do livro

Mantenha uma lista de autores e quantidade de livros escritos. Mantenha uma matriz de inteiros com a relao de autorias. Observe que essa matriz simtrica e sua diagonal igual a lista do item anterior. Ao final, imprima:

Quais autores escreveram mais livros juntos Dado um autor, com quais autores ele nunca escreveu

Exerccio Matriz (e funes)


Faa um programa que gere um jogo do tipo "caa-palavras". O programa dever

inicializar uma matriz 6x6 com letras minsculas em ordem alfabtica por coluna (tabela 1) (caso no haja mais letras minsculas para preencher a matriz, devese voltar letra a). A seguir o programa dever ler o conjunto de informaes para montar o caa-palavras composto por:

Uma palavra de at 6 caracteres A linha inicial A coluna inicial O sentido (1=p/ cima; 2=p/ baixo; 3=diagonal p/Nordeste; 4=diagonal p/Suldeste; 5=p/ esquerda; 6=p/direita, 7=diagonal p/Noroeste, 8= diagonal p/Sudoeste)

A leitura das palavras termina com uma palavra vazia. Para cada palavra lida, o

programa dever coloc-la na matriz de acordo com o sentido. Caso a palavra no caiba na posio e direo definida, esta dever ser ignorada e uma mensagem de erro dever ser emitida. (crie uma funo para cada sentido)
Exemplo:

Exerccios
Escreva um programa para computar o tringulo de

Pascal at a linha n, onde n um valor inteiro positivo lido da linha de comando

Lembre-se que o elemento na i-sima linha e j-sima coluna do tringulo de Pascal contm o nmero de combinaes de i elementos j a j O tringulo deve ser posto numa lista onde o i-simo elemento uma lista com a i-sima linha do tringulo Ex:

Quantas linhas? 7 [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15, 20, 15, 6, 1]]

Potrebbero piacerti anche