Anh em pascal vô help giùm mình đoạn code với :-ss

vodanhlata

Hero
Joined
Oct 25, 2012
Messages
1,242
Reactions
457
MR
0.496
Insuree Balance
0
Viết chương trình nhập vào bàn phím một dãy số nguyên. Xuất ra màn hình tần suất (số lần xuất hiện) của các số trong dãy số đó (Hôm bữa trên lớp tìm ra thuật toán rồi mà h quên lại,các bạn làm từ phần mà so sánh các phần tử từ đó tính số lần xuất hiện thôi nha, phần nhập thì dễ rồi)
Các bạn jeannotlafart, tatqlt, 1or0 để lại sdt + mạng sử dụng nhé
 
Last edited by a moderator:
var s:string;
begin
write("Nhap day so nguyen:"); readln(s);
for i:=1 to 10 do
begin
dem:=0;
for j:=1 to length(s) do
if s[j] = i then dem:=dem +1;
write('So lan xuat hien so',i,' la:',dem);
end;
readln;
end.
Cai sườn tạm nhé! Sẽ sửa đổi sau!
 
var s:string;
begin
write("Nhap day so nguyen:"); readln(s);
for i:=1 to 10 do
begin
dem:=0;
for j:=1 to length(s) do
if s[j] = i then dem:=dem +1;
write('So lan xuat hien so',i,' la:',dem);
end;
readln;
end.
Cai sườn tạm nhé! Sẽ sửa đổi sau!
Sử dụng biến kiểu mảng đi :D
Array ấy
 
var s:string;
begin
write("Nhap day so nguyen:"); readln(s);
for i:=1 to 10 do
begin
dem:=0;
for j:=1 to length(s) do
if s[j] = i then dem:=dem +1;
write('So lan xuat hien so',i,' la:',dem);
end;
readln;
end.
Cai sườn tạm nhé! Sẽ sửa đổi sau!

Ủa anh cũng học lập trình à :m003:
 
code trên gặp sô 2-3 chữ số thì sao
 
Chủ thớt làm mình nhớ đến thời xương máu với em này, chỉ cần lỗi dấu phẩy mà sửa cả ngày trời mới chạy :m147:
 
Program Tansuat;
Uses crt;
var i,k,j,n,max:integer;
dem,A: array [1..100] of integer;
begin
clrscr;
write('Nhap so pt:');readln(n);
for i:=1 to n do
readln(A);
dem:=0;
for i:=1 to n do
for j:=i to n do
if A=A[j] then inc(dem);
for i:=1 to n do writeln(dem);
readln;
end.
Test đi bác
 
Last edited by a moderator:
Vừa hỏi ông thầy thì thấy ổng bảo cách làm y hệt mình mà sao vô mình vẫn ra kết quả sai :-s

- - - Updated - - -

Program Tansuat;
Uses crt;
var i,k,j,n,max:integer;
dem,A: array [1..100] of integer;
begin
clrscr;
write('Nhap so pt:');readln(n);
for i:=1 to n do
readln(A);
dem:=0;
for i:=1 to n do
for j:=i to n do
if A=A[j] then inc(dem);
for i:=1 to n do write(dem);
readln;
end.
Test đi bác

Cho mình hỏi Inc là gì vậy bạn :-s
 
ngôn ngữ nào chả vậy chủ yếu thuật toán
 
Program Tansuat;
Uses crt;
var i,k,j,n,max:integer;
dem,A: array [1..100] of integer;
begin
clrscr;
write('Nhap so pt:');readln(n);
for i:=1 to n do
readln(A);
dem:=0;
for i:=1 to n do
for j:=i to n do
if A=A[j] then inc(dem);
for i:=1 to n do writeln(dem);
readln;
end.
Test đi bác


Nhìn vào thấy sai rùi! Dem sao nằm ngoài vòng for thế kia?
Còn nữa số lần xuất hiện số 0 ở đâu?
 
theo mình biết thì có nhiều cách, mình sẽ nói cách ít người sử dụng. ưu điểm là chạy nhanh, nhược điểm là tốn bộ nhớ, áp dụng cho dãy số nguyên nhập vào là lớn hàng trăm hay triệu, trục triệu, trăm triệu số, ... sẽ thấy khác biệt về tốc độ :m131:

PHP:
bài toán có mảng_số_nguyên[n phần tử], 1 mảng tần_suất[số lớn nhất trong mảng n phần 
tử / hoặc / gán mặc định 1 số integer cực lớn] và mảng_index[n phần tử]

for i:= 1 to n do
begin
    tần_suất[ mảng_số_nguyên[i] ] := tần_suất[mảng_số_nguyên[i] ] + 1;
end;

for i:= 1 to m (m là độ dài mảng_tần_suất) do
begin
    if  mảng_tần_suất[ i ] khác rỗng / hoặc / khác 0 then
       xuất ra dòng chữ số lần xuất hiện số i là tần_suất[ i ];
end;

đơn giản dễ hiểu:m131:
 
Last edited by a moderator:

Announcements

Today's birthdays

Forum statistics

Threads
418,895
Messages
7,077,928
Members
170,958
Latest member
Ckayapk

Most viewed of week

Most discussed of week

Most viewed of week

Most discussed of week

Back
Top Bottom