Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2014, 03:50   #1
Максим28
 
Регистрация: 22.11.2013
Сообщений: 9
По умолчанию Перевести с Паскаля на Си (массив записей/структур)

Структура элемента массива работник: фамилия, число, месяц и год рождения, пол.
определить:
─ фамилия самого старшего мужчины;
─ все фамилии, начинающиеся с заданной буквы;
─ список людей, родившихся в заданном месяце.
uses crt;
type
info = record
FIO: string;
d: 1..31;
m: 1..12;
y: 1990..1996;
p: string[1];
end;
var
i,n,m: integer;
st,max: info;
a:array [1..50] of info;//не integer
c: char;
begin
clrscr;
window(1,1,80,25);
textcolor(6);
textbackground(8);
clrscr;
write('Введите количество записей: ');
readln(n);
for i:=1 to n do
begin
clrscr;
writeln('*** Запись №',i,' ***');
write('Введите ФИО: ');
readln(st.FIO);
write('Введите день рождения: ');
readln(st.d);
write('Введите месяц рождения: ');
readln(st.m);//не d
write('Введите год рождения: ');
readln(st.y);
write('Введите пол: ');
readln(st.p);
a[i]:=st;
end;
clrscr;
max:=a[1];
For i:=2 to n do
if (a[i].p='m') and ((a[i].d<max.d) and (a[i].m<=max.m) and (a[i].y<=max.y))then
max:=a[i];
writeln('Самый старший мужчина: ',max.FIO);
write('Введите букву: ');
readln(c);
for i:=1 to n do
if a[i].fio[1]=c then
writeln(a[i].FIO);
write('Введите месяц: ');
readln(m);
for i:=1 to n do
if a[i].m=m then
writeln(a[i].FIO);
readln;
end.
Максим28 вне форума Ответить с цитированием
Старый 08.04.2014, 06:15   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Примерно так
Код:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string>
#include <iostream>
using namespace std;

struct info
{
string FIO;
int d;
int m;
int y;
char p;
};

int main()
{
int i, n, m;
char c;
struct info *a;
struct info *max;


setlocale(LC_ALL, "Russian");
cout << "Введите количество записей\n";
cin >> n;

a = new info[n];

for(i=0;i<n;i++)
{
cout << "Запись №" << i << "\n";
cout << "\nВведите ФИО: "; cin >> a[i].FIO;
cout << "\nВведите день рождения: ";  cin >> a[i].d;
cout << "\nВведите месяц рождения: "; cin >> a[i].m;
cout << "\nВведите год рождения: "; cin >> a[i].y;
cout << "\nВведите пол: "; cin >> a[i].p;
cout << "\n";
}

max = &(a[0]);

for(i=1;i<n;i++)
if (a[i].p == 'm' && a[i].d < max->d && a[i].m <= max->m && a[i].y <=max->y )
max = &(a[i]);

cout << "Самый старший мужчина \n"; 
cout << "ФИО: " << max->FIO << "\n";
cout << "день рождения: " << max->d << "\n";
cout << "месяц рождения: " << max->m << "\n";
cout << "год рождения: " << max->y << "\n";
cout << "пол: " << max->p << "\n";

cout << "Введите букву\n";
cin >> c;

for(i=0;i<n; i++)
if (a[i].FIO[0] == c)
cout << a[i].FIO << "\n";

cout << "Введите месяц\n";
cin >> m;

for(i=0;i< n;i++)
if (a[i].m == m)
cout << a[i].FIO << "\n";

delete []a;

return 0;
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести с Паскаля на Си lyubov17 Помощь студентам 0 10.12.2013 21:11
С++. Структуры и массивы структур. Дан массив записей, содержащий сведения о книгах: фамилия автора, название книги, год издания Beauty44 Помощь студентам 3 21.09.2013 13:14
перевести из паскаля на с++ екатерина новикова Общие вопросы C/C++ 1 19.12.2011 19:21
перевести из паскаля в си++ екатерина новикова Помощь студентам 0 19.12.2011 19:02
Добавление записей в массив структур korel Общие вопросы C/C++ 2 07.05.2009 23:59