Try surfing(in pokemon soul silver it works)
No, you can't! you can catch magikarp at least with old rod! you can found old rod in Dewford City...