Infraestrutura de Banco de DadosProgramacao para WebTecnicas de Programacao #Python possui um operador de divisao inteira (//).#O programa abaixo e apenas um exercicio, que pode ser melhorado. 1 #!/usr/bin/python3 2 dividendo = int(input("Dividendo: ")) 3 divisor = int(input("Divisor: ")) 4 quociente = 0 5 resto = dividendo 6 a = dividendo > 0 7 b = divisor > 0 8 if not((a or b) and not(a and b)): 9 while resto-divisor>=0 and dividendo>0 or resto-divisor<=0 and dividendo<0: 10 quociente += 1 11 resto -= divisor 12 else: 13 while resto+divisor>=0 and dividendo>0 or resto+divisor<=0 and dividendo<0: 14 quociente -= 1 15 resto += divisor 16 print("%dx%d=%d resto %d" % (dividendo, divisor, quociente, resto))Desafio para os alunos de programacao 1:Refazer o programa acima utilizando apenas um (1) while. Download #include <stdio.h>#include <stdlib.h>void troca(int *a, int *b){ int tmp = *a; *a = *b; *b = tmp;}void ordena2(int *a, int *b){ if(*a>*b) troca(a,b);}void ordena3(int *a, int *b, int *c){ ordena2(a,b); ordena2(b,c); ordena2(a,b);}void ordena4(int *a, int *b, int *c, int *d){ ordena3(a,b,c); ordena3(b,c,d); ordena3(a,b,c);}void ordena5(int *a, int *b, int *c, int *d, int *e){ ordena4(a,b,c,d); ordena4(b,c,d,e); ordena4(a,b,c,d);}void ordena6(int *a, int *b, int *c, int *d, int *e, int *f){ ordena4(a,b,c,d); ordena4(c,d,e,f); ordena4(a,b,c,d);}int main(){ int a, b, c, d, e, f; srand(time(NULL)); a = rand()%100; b = rand()%100; c = rand()%100; d = rand()%100; e = rand()%100; f = rand()%100; printf("%2d %2d %2d %2d %2d %2d\n", a, b, c, d, e, f); ordena6(&a, &b, &c, &d, &e, &f); printf("%2d %2d %2d %2d %2d %2d\n", a, b, c, d, e, f); return 0;} Download # Criar banco de dadosDROP DATABASE IF EXISTS Discoteca;CREATE DATABASE Discoteca;USE Discoteca;# Criar tabelasDROP TABLE IF EXISTS Artistas;CREATE TABLE Artistas ( Codigo INT UNSIGNED NOT NULL AUTO_INCREMENT, Nome VARCHAR(255) NOT NULL UNIQUE, Formacao enum('Solo','Grupo'), PRIMARY KEY (Codigo) # Se o PRIMARY KEY der erro, # usar o comando abaixo, fora do CREATE TABLE);### ALTER TABLE Artistas ADD PRIMARY KEY (Codigo); DROP TABLE IF EXISTS Musicas;CREATE TABLE Musicas ( Codigo INT UNSIGNED NOT NULL AUTO_INCREMENT, Nome VARCHAR(255) NOT NULL, Artista INT UNSIGNED NOT NULL, PRIMARY KEY (Codigo), FOREIGN KEY (Artista) REFERENCES Artistas(Codigo) # Se o FOREING KEY der erro, # usar o comando abaixo, fora do CREATE TABLE);### ALTER TABLE Musicas ADD FOREIGN KEY (Artista) REFERENCES Artistas(Codigo);# Inserir artistasINSERT INTO Artistas (Nome,Formacao) VALUES('Legiao Urbana', 'Grupo'),('Renato Russo', 'Solo'),('Capital Inicial', 'Grupo'),('Barao Vermelho', 'Grupo'),('Cazuza', 'Solo');# Criar PROCEDURE que encontra o codigo do artistaDROP PROCEDURE IF EXISTS CODIGOARTISTA;DELIMITER //CREATE PROCEDURE CODIGOARTISTA( IN NomeArtista VARCHAR(255), OUT CodigoArtista INT UNSIGNED)BEGIN SELECT Codigo INTO CodigoArtista FROM Artistas WHERE Nome=NomeArtista LIMIT 1;END //DELIMITER ;## Inserir musicas ###Encontrar codigo do artista CALL CodigoArtista('Legiao Urbana',@CodigoArtista);#Inserir musica usando o codigo encontradoINSERT INTO Musicas (Nome,Artista) VALUES ('Sera',@CodigoArtista);#O Codigo nao desaparece depois do INSERTINSERT INTO Musicas (Nome,Artista) VALUES ('Pais e Filhos',@CodigoArtista), ('Faroeste Caboclo',@CodigoArtista), ('Tempo Perdido',@CodigoArtista), ('Indios',@CodigoArtista);#Encontrar novo codigo para outro artistaCALL CodigoArtista('Cazuza',@CodigoArtista);#Inserir musicas com o novo codigoINSERT INTO Musicas (Nome,Artista) VALUES ('Exagerado',@CodigoArtista), ('Faz parte do meu show',@CodigoArtista);# Criar VIEW para AcervoCREATE VIEW Acervo AS SELECT Musicas.Codigo AS CodigoMusica, Musicas.Nome AS Musica, Artistas.Nome AS Artista FROM Musicas INNER JOIN Artistas ON Musicas.Artista = Artistas.Codigo ORDER BY Artistas.Nome;#Usar a