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

vodanhlata

Hero
Joined
Oct 25, 2012
Messages
1,189
Reactions
457
MR
0.501
Chat with me via Skype
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!
 

ct_ou

Hero
Verified
Joined
Feb 17, 2012
Messages
1,781
Reactions
1,059
MR
1.700
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:
 
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
 
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?
 

1or0

Senior
Joined
Apr 7, 2013
Messages
1,071
Reactions
308
MR
0.000
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

Forum statistics

Threads
426,785
Messages
7,185,938
Members
179,140
Latest member
xoso333life

Most viewed of week

Most viewed of week

Back
Top Bottom